我每隔几分钟就会运行一个 cron 作业,它会遍历“待办事项”列表中的前 50 个项目,在每个项目上运行一个脚本并将其标记为在数据库中运行。
这一直很好,直到将项目标记为完整的表被某些东西锁定并且项目没有被标记。然后 cron 再次运行并检查了相同的 50 个项目。
如此反复,直到 mysql 中的进程列表非常庞大,并且每隔几分钟只会增加 50 倍。
我怎么能阻止这种情况发生?我的想法是:
- 在脚本中添加代码以查看 cron 是否仍在运行,然后再次运行
- 在运行新的 SELECT 查询以获取接下来的 50 项之前检查 mysql 表中的锁定表
他们似乎都有起伏,我不确定如何正确实施。任何人有任何建议/更好的想法?