gpt4 book ai didi

php - 来自 cronjobs 的 mySQL 锁定记录

转载 作者:行者123 更新时间:2023-11-28 23:13:23 26 4
gpt4 key购买 nike

我有一张表,用于存储客户提交的表单。

还有一个 cron 脚本从这个表中选择记录进行处理。它每分钟运行一次。

SELECT * from Forms where to_CRM = 0 limit 10

问题是有时 API 需要一段时间才能完成,因此有时在前一批完成之前已经请求运行下一批。

这会导致选择同一个人进行处理,因为他的 To_CRM 标志仍为 0;

必须确保锁不会锁定表以使其无法插入新记录。

通过事务或其他方法(例如在处理时在表中设置列)解决此问题的最佳方法是什么?

最佳答案

也许您想实际更新表格:

UPDATE Forms SET to_CRM=1499358596 WHERE to_CRM=0 LIMIT 10

其中代表执行时间。然后:

SELECT * From Forms WHERE to_CRM=1499358596

这不会加倍,因为由于 WHERE 子句,每次运行都会从后续运行中排除它正在运行的那些。我假设您可以在此处使用 to_CRM 字段,但您也可以添加另一个专门用于锁定/声明的字段。

关于php - 来自 cronjobs 的 mySQL 锁定记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44954391/

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