2012-02-05 194 views
1

你們建議如何在zookeeper中實現一個能夠延遲工作而不阻止工作人員的好方法?動物園管理員隊列延遲?

參考beanstalkd延遲作業選項。

+0

「延遲工作而不阻止工作人員」是什麼意思? – 2012-02-06 23:05:53

+0

這意味着我不想要一個工人,把工作從隊列中卸下來睡覺讓我們說一個小時,直到它開始處理工作 – schone 2012-02-07 06:47:51

回答

0

你需要的是開發一個使用zookeeper的障礙。

我假設「延遲時間」是由另一個稱爲master的進程設置的。

法師首先創建一個節點說/工作/標誌與數據「假」

什麼工人需要做的就是,看着節點/工作/標誌。觀察者會以異步方式回電,以便在工作人員中做其他事情,不會阻止。

到時候,master會將/ work/flag數據設置爲「true」,這會導致一個ZOO_CHANGED_EVENT事件。

而工人應該在/ work/flag中將事件回調稱爲「ZOO_CHANGED_EVENT」。然後它可以獲取並檢查/ work/flag是否爲true,並確定是否繼續工作流程。