Gearman (с использованием PHP) - можно отправить работу / сообщение ВСЕМ работникам? - PullRequest
1 голос
/ 05 октября 2011

Я новичок в Gearman, но я понимаю общие понятия. Я понимаю, что это не то, что вы обычно хотели бы сделать ... Но мне было интересно, есть ли способ отправить "работу" ВСЕМ работникам?

У меня есть сценарий, который отслеживает моих работников и порождает их, когда они умирают. Я хотел бы иметь возможность отправить задание, которое говорит «умри», когда я хочу убить / перезапустить все рабочие процессы.

Возможно ли это? Спасибо!

1 Ответ

1 голос
/ 05 октября 2011

Есть несколько способов сделать это.

Самый простой способ - отправить работу «убить» каждому работнику, который у вас есть.Как только они все будут убиты, возродите их.Недостатком этого метода является то, что вам придется ждать, пока все ваши работники не умрут, прежде чем вы сможете начать возрождение.Если ваш существующий скрипт сразу же появится, вы столкнетесь с проблемами здесь.

Другой способ - зарегистрировать уникальную задачу для каждого из ваших работников.Если, например, у вас есть два работника, зарегистрируйте задачу «kill_001» для первого работника и «kill_002» для второго работника.Чтобы убить ваших работников, определите уникальные задания для запуска («kill_001», «kill_002»), а затем отправьте их.Возрожденные работники должны иметь новых уникальных задач, т.е. не регистрировать новое задание "kill_001", если оно еще не было убито.Хотя этот метод может потребовать немного больше работы, он позволит вам возродить ваших работников без простоев.

...