我有beanstalkd设置。我正在使用pheanstalk php库添加工作和我的工作人员。
添加作业正常工作,我正在我的数据库中记录作业ID以供日后参考。没有工作ID被跳过IE:他们按顺序编号:1,2,3,4
现在,有点工作的部分是工人。他们正在做的事情是,他们做了应该做的事情,但我有三个人在运行,出于某种原因,相同的工作运行两到三次而不是一次。
我不确定为什么会发生这种情况我只是使用带有内存检查的while循环+我的工作代码来监控新工作。
以下是该代码的开头。
while (1) {
$job = $this->pheanstalk->watch('my_tube')->ignore('default')->reserve();
$job_decoded = json_decode($job->getData(), false);
以下是benstalk控制台的输出。忽略第一行,因为这是我没有使用的默认管。
在向队列中再添加一个作业后,总列会变为4,而其他任何内容都不会更改。
答案 0 :(得分:1)
我发现这个问题是一个错误,导致第一个工作人员做了它应该做的事情,但在删除工作之前崩溃了。
所以接下来的工作人员会把它拿起来,然后跳转到我的catch块并绕过php错误然后删除该作业。