Rumah > pembangunan bahagian belakang > tutorial php > 问一个关于时间控制的典型有关问题

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

WBOY
Lepaskan: 2016-06-13 10:36:16
asal
965 orang telah melayarinya

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

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

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


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


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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan