由于我已经安装了 cron,所以每分钟运行相同的脚本。同时一个脚本被执行多次。
有这么一个部分:
$query = mysql_query("select distinct `task_id` from tasks_pending where `checked`='0' and `taken`='0' limit 50");
然后,将得到的值设置“taken = 1”
由于多个进程同时执行,因此请求为不同进程返回相同的数据。是否有可能以某种方式禁用她的这部分时间,使其只能执行一个进程?
抱歉英语不好。
最佳答案
使用SELECT FOR UPDATE并且它会在更新之前阻止另一个进程选择相同的行
关于php - 如何阻塞多个进程的一段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11260374/