你们有什么建议在zookeeper中实现一个能够在不阻塞工作人员的情况下延迟工作的队列的好方法?
引用beanstalkd延迟作业选项。
答案 0 :(得分:0)
您需要的是使用zookeeper开发障碍。
我认为“延迟时间”是由另一个名为master的进程设置的。
Master首先创建一个节点说/ work / flag,数据为“false”
工作人员需要做的是获取并观察node / work / flag。观察者会回到asyn,所以你可以在工作中做其他事情,不会阻止。
当时机成熟时,master会将/ work / flag数据设置为“true”,这会导致ZOO_CHANGED_EVENT事件。
工作人员应该在/ work / flag中收到事件回调,说“ZOO_CHANGED_EVENT”。然后它可以获取并检查/ work / flag是否为真,并确定是否继续工作流程。