Beanstalk на централизованном сервере, как избежать дублирования работы для работника?

У меня есть сервер, на котором работает Beanstalk, и некоторые независимые серверы, на которых работают рабочие в PHP с Pheanstalk.

С того момента, как работник А устроился на работу:

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

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

И в тот момент, когда это удалить работу ($pheanstalk->delete($job);), это может произойти через несколько десятков секунд.

Знает ли Beanstalk, что задание обрабатывается, и ни у кого другого его не будет, или у меня возникнет проблема с параллелизмом? (два работника берут одну и ту же работу).

Спасибо за помощь.

0

Решение

BeanstalkD знает задание, которое обрабатывается, поэтому оно не будет передавать задание другому работнику во время его обработки.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]