Назад | Перейти на главную страницу

Beanstalkd и несколько рабочих на трубе

Если у меня есть два сотрудника, которые слушают одну трубку, и задание выполняется, будут ли оба сотрудника пытаться выполнять одну и ту же работу, или на нее будет претендовать только один?

Только один работник будет претендовать на вашу работу. Так что по одному.

А job в beanstalk создается клиентом с помощью команды "положить". В течение жизни он может находиться в одном из четырех состояний: «готов», «зарезервирован», «отложен» или «похоронен». После команды put работа обычно начинается готовой. Он ждет в очереди готовности, пока не появится рабочий и выполнит команду «зарезервировать». Если это задание находится следующим в очереди, оно будет зарезервировано для работника. Рабочий выполнит работу; по завершении рабочий отправит команду «удалить», чтобы удалить задание.

А worker который хочет получить задания из очереди, использует «зарезервировать», «удалить», «освободить» и «похоронить».