2016-03-16 44 views
4

我有一個長期運行的工作,使用Propel2構建。但是,有時它與臭名昭着的mysql server has gone away錯誤崩潰。我想通過重新連接到服務器來恢復這個錯誤,也許在等待幾秒鐘後。有沒有人有一個想法如何強制Propel在連接丟失後重新連接?我沒有找到任何線索如何從PropelPDO API執行此操作。當MySQL服務器消失時,Propel2重新連接

+0

我有同樣的問題。我試圖設置持續連接,但不認爲這會有所幫助。 – Vahan

回答

2

我遇到這個問題時,結合laravel隊列。隊列:工作守護進程是進程,發生超時後,它不會自行重新連接。試圖持久連接,這並沒有幫助。

現在我已經解決了這個問題,是一個小小的隊列/ laravel特定的,但也可能幫助您找到一個解決方案。

我現在強制工作人員處理每個作業,通過使用Queue :: before()事件斷開驅動連接。然後

通過行走做
$manager = Propel::getConnectionManager('default'); 
$manager->closeConnections(); 

新請求將創建一個新的連接(這會發生的由雖然工人處理的每個新工作)

也許你可以try/catch語句查詢,看什麼錯誤/例外是,當它'mysql服務器已經消失'觸發斷開連接並重試查詢

相關問題