daemon - php守護進程運行一段時間後沒死但是不工作了

來源:互聯網
上載者:User
我用 while(true)在後台跑了一個守護進程,進程的任務是讀取介面,並將介面內容放進Mysql && Redis && json.js。

問題是進程運行一段時間(大概半月)後,沒有死,但是不工作了。

請問這是一個常見的問題嗎?還是因為My Code有問題導致的問題。

我現在的解決辦法是定時重啟下進程,有更好的辦法嗎?

部分代碼

public function sync() {    while(true){        $this->syncData();        sleep(5);    }}

回複內容:

我用 while(true)在後台跑了一個守護進程,進程的任務是讀取介面,並將介面內容放進Mysql && Redis && json.js。

問題是進程運行一段時間(大概半月)後,沒有死,但是不工作了。

請問這是一個常見的問題嗎?還是因為My Code有問題導致的問題。

我現在的解決辦法是定時重啟下進程,有更好的辦法嗎?

部分代碼

public function sync() {    while(true){        $this->syncData();        sleep(5);    }}

編寫運行在命令列下的PHP CLI程式時,建議不要使用持久串連,建議每次使用MySQL時都重新開啟和關閉資料庫連接,避免資料庫連接丟失時導致CLI程式出現故障.Redis同理.

認為可以嘗試workerman 或者swoole 這兩個適合做守護進程任務的架構,這兩個都比較活躍,並且使用者比較多

用shell的while來代替PHP的while

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.