gpt4 book ai didi

php - 阻止 2 个相同的查询几乎同时执行?

转载 作者:可可西里 更新时间:2023-11-01 08:08:21 25 4
gpt4 key购买 nike

我开发了一个基于 AJAX 的游戏,其中有一个错误(非常遥远,但在数量上它至少每小时发生一次)由于某种原因两个请求几乎同时发送到处理页面(最后一个我跟踪,请求相差 .0001 毫秒)。在执行查询之前有一个检查以确保它不会被执行两次,但是由于差异很小,所以在执行下一个查询之前检查还没有完成。我很困惑,我该如何避免这种情况,因为它会在游戏中造成严重的问题。

更清楚一点,查询在游戏中开始新一轮,所以当它执行两次时,它同时开始 2 轮,这打破了游戏,所以我需要能够停止脚本如果上一轮未结束,则执行,即使上一轮在 .0001 毫秒前开始。

最佳答案

诀窍是使用原子更新语句来做一些对两个线程都不能成功的事情。它们不能都成功,因此您可以简单地执行如下查询:

UPDATE gameinfo SET round=round+1 WHERE round=1234

其中 1234 是正在进行的当前回合。然后检查受影响的行数。如果线程影响零行,则它失败了并且其他人事先已经完成了。我假设当自动提交打开时,上面的内容将在它自己的事务中执行。

关于php - 阻止 2 个相同的查询几乎同时执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com