2012-09-24 50 views
7

如何列出Gearman作業服務器上的所有作業手柄?我試圖想出一個監控方法,我可以在其中列出所有正在運行的線程,並輪詢它們的狀態。List Gearman作業手柄

清單與「狀態」運行的作業,和「工人」(如http://gearman.org/index.php?id=protocol描述)中列出的功能和工人,但沒有工作處理。作業句柄是必需的,以便做GET_STATUS等。

我試圖分離作業從監控提交,因此沒有JOB_CREATED數據包中返回的作業句柄。

+0

你有沒有找到一個解決辦法?我想基本上做同樣的事情 - 提交後臺作業,並讓其他單獨的進程監視它們/在未來某個未確定的時間收集結果。我考慮提交處理ID作爲一個單獨的工作,以促進這一點。 – goat

+0

不幸的是,沒有 - 我被卡住了,不得不從作業提交回復中保存作業手柄 –

+0

您可以保存作業手柄嗎?您也可以創建一個名爲jobs的數據庫表...添加一行,從插入操作中獲取id,並啓動後臺gearman作業,包括數據中的id。在齒輪工作中,它在每次動作後更新數據庫。然後你的顯示器腳本只是不斷檢查數據庫......你甚至可以創建一個json服務來監控減速機工作。我不確定是否有本土的齒輪人員方法,因爲我對齒輪人不太熟悉,但是這可能會更容易一些,並且允許任何平臺都使用它,而不考慮對齒輪人員的支持。 – user1641165

回答

1

有大量的Gearman經理在那裏的,

https://github.com/brianlmoon/GearmanManager是用於管理和查看整個包。

https://github.com/yugene/Gearman-Monitor

或者我用一個監測 https://github.com/liorbk/php/blob/master/GearmanTelnet.php

+0

我認爲你誤解了這個問題。您所描述的所有方法都利用管理界面 - 發送「狀態」和「工作人員」命令。這些輸出不提供我正在尋找的東西。 –

+1

對不起,我現在看到了問題。 我看過http://www.php.net/manual/en/class.gearmantask.php並設置回調函數,例如http://www.php.net/manual/en/gearmanclient.setstatuscallback .php但也不認爲這些回答你的問題。抱歉 –