1

你们会建议什么是在zookeeper中实现队列的好方法,该队列能够延迟工作而不阻塞工作人员?

参考 beanstalkd 延迟作业选项。

4

1 回答 1

0

你需要的是使用 zookeeper 开发一个 Barriers。

我假设“延迟时间”是由另一个名为 master 的进程设置的。

Master首先创建一个节点说/work/flag,数据为“false”

worker 需要做的是获取并观察节点 /work/flag。观察者会在异步中回调,这样你就可以在工人中做其他事情,不会阻塞。

时机成熟时,master 会将 /work/flag 数据设置为“true”,这会导致 ZOO_CHANGED_EVENT 事件。

并且工作人员应该在 /work/flag 中收到事件回调,说“ZOO_CHANGED_EVENT”。然后它可以获取并检查 /work/flag 是否为真,并确定是否继续工作流。

于 2012-05-17T02:17:26.563 回答