1
我已經寫了基於這兩個博客文章並行任務Zend框架基於cron服務:MySQL連接關閉過程中並行的後臺任務
綜上所述, cron服務使用pcntl_fork()
並行產生任務。
運行與服務的單個任務的工作沒有問題,但是當我添加第二個任務,我得到這個MySQL錯誤:
General error: 2006 MySQL server has gone away
我最好的猜測是,一個子線程之前,其他和結束MySQL連接隱式關閉。如果是這種情況,我如何確保連接保持打開狀態,直到父線程關閉?
連接到數據庫後,您()。如果在fork之前進行連接,則該連接將由子進程共享,並且MySQL不會爲共享相同連接的多個進程進行設置。 – 2011-06-10 17:27:25
分叉之前的引導過程連接到數據庫,必然如此。我一直在閱讀關於http://php.net/pcntl-fork的評論,我得出的結論是我必須刪除分叉。我希望有另一種方式。 – Sonny 2011-06-10 17:35:47
你可以隨時讓孩子們開啓一個新的連接。只是不要重複使用父母建立的任何連接。 – 2011-06-10 17:58:00