首頁 >後端開發 >php教程 > 问一个关于时间控制的典型有关问题

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

WBOY
WBOY原創
2016-06-13 13:20:54851瀏覽

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

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

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


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


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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn