2013-10-18 24 views
2

我有多個客戶端將作業添加到我的排練員隊列中。我如何批量處理多位齒輪工工作?

這些工作最終註定要成爲批量上傳到SOLR索引

我想抓住從我的隊列中多個作業,並在1000個文檔因爲性能原因批次一起concatinate他們的文件。

我願意使用Gearman的CMD工具,或任何其軟件開發工具包

的我一直在尋找的PHP擴展和唯一的選擇$工人─>工作()是不夠的。

我發現了一個forum post建議使用grab_job(),但從2009年開始,該方法似乎不再存在。

我是否在使用減速機錯誤或錯過了什麼?

+0

您可以只將作業添加到數據庫,並且如果有足夠的作業可以批處理,請將批處理ID發送給Gearman,然後讀取作業本身? – halfer

+0

@david chan,請問我是怎麼解決這個問題的? – Suriya

+0

我從來沒有解決過這個問題。 –

回答

1

你的php工作者堅持工作。因此,您可以執行以下操作:以典型的方式使用$ worker-> work() - 我的意思是,一個工作 - 一個工作()調用。在工作人員內部設置一個計數器,並將所有工作負載保存到內部變量中。每1000個工作也做你的批處理。