1
我們正在使用beanstalkd運行接收來自客戶端的作業,使用php並使用pheanstalk作爲php代理。我們將一個工作者作爲php系統守護進程運行,並使用monit繼續監視。Php守護進程經常崩潰
但它在一天一次的頻率不斷重啓。在觀察問題後,確認沒有代碼錯誤。那麼有什麼機會?
我們正在使用beanstalkd運行接收來自客戶端的作業,使用php並使用pheanstalk作爲php代理。我們將一個工作者作爲php系統守護進程運行,並使用monit繼續監視。Php守護進程經常崩潰
但它在一天一次的頻率不斷重啓。在觀察問題後,確認沒有代碼錯誤。那麼有什麼機會?
PHP不是一個長時間運行的過程,因此偶爾重新啓動腳本可能是一件非常有用的事情 - 特別是如果幹淨的出口在您的控制之下。
例如,您可以在循環中運行50/100/1000作業,然後退出腳本以使其自動重新啓動。包裝call to the script in a fairly simple shell script可以檢查返回值,然後立即重新啓動,或者如果可能存在問題,可以稍微減慢一些。
腳本突然失敗的原因有很多種。內存泄漏可能會迫使操作系統終止進程,錯誤可能會引發未捕獲的異常或其他此類致命錯誤,或腳本外部的某些操作可能會導致失敗。
隊列中的後臺工作人員的難點在於處理可能會阻止腳本始終工作的(潛在)問題。詳細記錄可以幫助我們追蹤這些問題。
我已經讀了最後一句話3次,仍然不明白你想要什麼。你能編輯這個問題嗎? –
@OmriLuzon對於後期抱歉...我的意思是monit經常重啓工作線程.... –