2010-04-09 63 views
5

首先 - 你好,這是我的第一個堆棧溢出問題,所以我會盡我所能進行正確的通信。推薦的方式來管理持續的PHP腳本過程?

我的問題的標題可能有點曖昧,所以讓我對它立即展開:

我打算一個項目,該項目涉及從幾個「流」的API獲取數據輸入,微博就是一個例子。我有一個用PHP編寫的基本腳本,它可以從命令行無限期地運行,從Twitter流媒體API獲取輸入並用它做非常基本的事情。我最終的目標是有幾個這樣的進程在運行(可能使用System Daemon PEAR類進行守護進程),我希望能夠通過一些治理過程(也是PHP腳本)來管理它們。通過管理我的意思是基本操作,如停止/啓動和(最關鍵的)自動重新啓動一個崩潰的進程。

我很感激任何關於如何最好地處理這個過程管理角度的指針。如果這個問題過於寬泛,再次表示歉意,如果有必要的話,可以提出更加嚴密的調查問題。感謝閱讀,我期待着您的回答。

+0

僅供參考我已經設置了「Supervisor」,一個用於管理流程的Python應用程序,這似乎正是我所需要的! 這是從[Run php script as daemon process]鏈接的(http://stackoverflow.com/questions/2036654/run-php-script-as-daemon-process) - 由Pekka在下面指出(再次感謝!) 。主管本身可以在這裏找到(http://supervisord.org/)。 – BigglesZX 2010-04-09 10:46:59

回答

3

我認爲有持續性過程的推薦方法是不是做在PHP在所有;)

但這裏有一些相關的問題,它看起來像一些反饋包含這樣一些好的想法和經驗。

更多在search

+0

這是超級 - 你發佈的第二個鏈接的確確實產生了許多有用的鏈接!現在研究。感謝您的輸入 :)。 – BigglesZX 2010-04-09 09:27:57

2

這在運行持久PHP腳本的上下文中不起作用,但Cron對於在不同時間和不同時間間隔運行腳本非常方便。不用一直運行的PHP腳本,停止並啓動各種其他腳本,您可以使用Cron以適當的時間間隔運行它們。

+0

根據要求,這是一個很好的方法。您也可以使用它來監視正在進行的過程;檢查每分鐘是否仍在運行,如果失敗則會自動重新啓動。取決於您可以採取多少停機時間,但它正在閱讀供稿,然後每分鐘聽起來都很好。 – 2010-04-09 09:33:58

0

您希望這樣做的方式是可能的,但會很複雜且相對難以維護。

如果你用不同的方式來看它,而不是連續不斷地蒸汽,你可能會定期地在數據中分塊。從技術上講,它仍然是流媒體,特別是像Twitter這樣的Feed。

如果某些飼料實時抽出,您可能會錯過其中的一些數據,那麼這可能不適合您。

它更容易管理啓動和停止以及管理少量數據的進程。他們都可以檢查數據庫中的控制數據並更新狀態。另外,使用cron是一種真正的樂趣。

這就是我現在要做的。

相關問題