同时大量用户报名的系统设计

KeenWon 2012-11-05 03:02:35
现在要做一个报名系统,在某个时间点开启报名,会有数千人同时报名,名额有限,如果我先判断报名人数,再报名,万一这两次查询中间有人报名了,人数又刚好够了,那怎么呢?求思路
...全文
297 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子丶哥 2012-11-06
  • 打赏
  • 举报
回复
引用 13 楼 qq369553203 的回复:
application 存个 LIST<T> 类型的LIST 如果有人报名的话先判断LIST的COUNT是不是小于1000,如果大于1000的话 就给提示 不能报名。 然后 ,有这个就把这个LIST里面的信息插入数据库中呗。
记得lock和unlock
兔子丶哥 2012-11-06
  • 打赏
  • 举报
回复
application 存个 LIST<T> 类型的LIST 如果有人报名的话先判断LIST的COUNT是不是小于1000,如果大于1000的话 就给提示 不能报名。 然后 ,有这个就把这个LIST里面的信息插入数据库中呗。
风一样的大叔 2012-11-06
  • 打赏
  • 举报
回复
引用 11 楼 semanwmj 的回复:
锁表效率会不会很低
会的
KeenWon 2012-11-06
  • 打赏
  • 举报
回复
锁表效率会不会很低
色拉油 2012-11-05
  • 打赏
  • 举报
回复
插入数据的时候锁表,查询总数,小于的话就插入,否则拒绝
KeenWon 2012-11-05
  • 打赏
  • 举报
回复
引用 8 楼 wanghui0380 的回复:
不需要时时统计,你把这些当登记就ok 处理好了,在发短信通知交钱。 这玩意实际上也都这么操作,术语“中签”
要实时统计的,点击报名之后,马上就要有反馈,没有报上的话,还要报名别的
wanghui0380 2012-11-05
  • 打赏
  • 举报
回复
不需要时时统计,你把这些当登记就ok 处理好了,在发短信通知交钱。 这玩意实际上也都这么操作,术语“中签”
woainilei 2012-11-05
  • 打赏
  • 举报
回复
application存下限制的数量。
  • 打赏
  • 举报
回复
锁表,一个人报名成功,修改剩余名额时其他人不能报名,只有剩余名额更新完成后,其他人才能报名,这是重新检索剩余名额,可以防止重复。 可以看一看read commited的说明,sqlserver默认就是read commited 另外如果要求不高使用application来存剩余名额也可以
Refrain66 2012-11-05
  • 打赏
  • 举报
回复
给一个标识字段吧,字段的人数为你限定多少人数报名比如: 人数=1000 然后每次用户报名提交成功的时候 人数-1 为0的时候就代表报名人数满了,然后把结果返回给用户。 不知道行的通不
KeenWon 2012-11-05
  • 打赏
  • 举报
回复
引用 3 楼 mizuho_2006 的回复:
我想起以前报名日语等级考试抢座位的时候。。都是同时开好几个窗口一起刷。。刚开始不到5分钟,好多学校的位置都已经订满了。。 那么多人,服务器要能承受的了才行啊。。
也就几千人而已,有什么方案吗?防止报名超了
mizuho_2006 2012-11-05
  • 打赏
  • 举报
回复
我想起以前报名日语等级考试抢座位的时候。。都是同时开好几个窗口一起刷。。刚开始不到5分钟,好多学校的位置都已经订满了。。 那么多人,服务器要能承受的了才行啊。。
winner2050 2012-11-05
  • 打赏
  • 举报
回复
别人提出来的方式都会有争议。 随机抛弃申请连接,排队申请。。。。。总会有人骂。
winner2050 2012-11-05
  • 打赏
  • 举报
回复
这不就跟卖火车票一样嘛!

62,040

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧