2012-02-05 3 views
1

Что вы, ребята, предложите, чтобы быть хорошим способом реализовать очередь в zookeeper, которая имеет возможность отложить работу, не блокируя рабочего?Задержка очереди zookeeper?

Ссылка beanstalkd delayed job option.

+0

Что значит «задерживать работу, не блокируя рабочего»? –

+0

Смысл, что я не хочу, чтобы работник, выполняя задание с очереди и спал, позволяет говорить час, пока он не начнет обрабатывать работу – schone

ответ

0

Вам необходимо разработать барьеры, используя зоопарк.

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

Master первым создать узел сказать/работа/флаг с данными «ложным»

Что работник нужно сделать, это получить и смотреть узел/работа/флаг. Наблюдатель перезвонит в asyn, чтобы вы могли делать что-то другое в рабочем месте, не блокировалось бы.

Когда придет время, мастер установит данные/work/flag в значение «true», что вызовет событие ZOO_CHANGED_EVENT.

И рабочий должен получить звонок по телефону, указав «ZOO_CHANGED_EVENT» в/work/flag. Затем он может получить и проверить, истинно ли/work/flag и определить, продолжать ли рабочий процесс.