我正在编写类似 omegle 随机聊天的代码,我有一个名为 chat_users 的表,其中 我正在存储不与任何人聊天的人,他们刚来,然后当他们开始与其他人聊天时,我将删除他们
让我们说 我们有名为 uid1、uid2、uid3 的用户
在 1:05 和 5 秒(任何特定时间)uid1 请求与 uid2 聊天并从表中删除 但同时 uid3 也得到了 uid2 作为随机结果然后它会成为问题 因为 uid2 不存在它与 uid1 聊天
我该如何解决这个问题??
最佳答案
使用transactions .
澄清:将随机结果的选择和随后的删除包装在一个事务中,问题就会消失,因为 mySQL 然后应该处理冲突的事务。
关于PHP/MYSQL并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9401783/