我有beantalkd设置。我正在使用 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 并且没有其他任何变化。