问一个关于时间控制的典型有关问题

WBOY
发布: 2016-06-13 13:20:54
原创
825 人浏览过

问一个关于时间控制的典型问题
业务关于一个抢先发言的问题,假设有1000个用户,5秒钟内抢先发言,且只能有一个人发言;5秒后谁也不能发言
由于客户要求,不能使用session

我是这样处理的
数据库中建立一个发言表tableWords,如果有第一个用户要抢先发言则,添加一条记录,之后其他的用户在抢发言,如果表中有记录,则不让发言;

这样做似乎没有问题,但考虑到并发的情况,很有可能1000个用户中有多个人在同一毫秒都执行了insert 操作,,如何只让一个用户insert了?


------解决方案--------------------
你的这个担忧是多余的
哪怕是同一微秒这1000个用户都发出了请求,在第一时刻也只有一个用户的请求被响应,其他的只是在排队
------解决方案--------------------
事务 文件锁 信号量锁等,用来判断用户发言资格


还可以依靠数据库唯一索引,字段可以由话题id?等指定,总之要唯一,显然这样就符合你的需求了

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板