2012-04-04 5 views
2

В настоящее время я использую Pheanstalk (beanstalkd) для обработки нескольких заданий с использованием нескольких сотрудников. Мне интересно, есть ли общий способ определить, закончены ли все задания, так как рабочие запускаются асинхронно.Как определить, закончены ли вакансии Pheanstalk

Я подумал о добавлении «завершенного» флага к последнему заданию и использованию рабочих для проверки этого флага. Проблема в том, что Последнее Работа не всегда является последней, завершенной работниками. Рабочие могут повесить трубку, сбой и т. Д.

ответ

0

Если вы хотите знать, когда все будет готово, вам нужно, чтобы каждое задание отметило его завершение и дождитесь завершения всех флагов. Как вы указали, нет гарантии по порядку завершения для набора рабочих мест для нескольких работников.

Может ли эта работа быть поставлена ​​в очередь как отдельное задание, а не несколько, так что это просто вопрос ожидания завершения этой отдельной работы?

Возможно, вам также стоит подумать, нужно ли знать, когда эти задания закончены. например для обработки изображений можно отобразить изображение заполнителя, пока фактическое изображение не будет готово. Если вам действительно нужно дождаться их завершения, возможно, они не подходят для асинхронной рабочей очереди.

Чтобы получить лучший ответ, вам может потребоваться уточнить свой вопрос или предоставить более конкретный пример.

Cheers! Paul