中央服务器中的Beanstalk,如何避免工作人员的重复工作?

时间:2015-11-27 15:29:05

标签: php beanstalkd pheanstalk

我有一台运行Beanstalk的服务器,以及一些使用Pheanstalk在PHP中运行worker的独立服务器。

从工人A找工作的那一刻起:

$job = $pheanstalk->watch('tube')
    ->ignore('default')
    ->reserve();

$data = json_decode($job->getData(), true);

当它删除作业($pheanstalk->delete($job);)时,可能会发生几十秒钟。

Beanstalk是否知道正在处理作业,没有其他工作者会拥有它,或者我是否会遇到并发问题? (两名工人从事同样的工作)。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

BeanstalkD知道正在处理的作业,因此在处理作业时,它不会将作业提供给另一个工作人员。