當保存對象時,我得到這個錯誤「一般錯誤:2006 MySQL服務器已經消失」。2006 MySQL服務器已經消失,同時保存對象
我不是要粘貼代碼,因爲它太複雜,我可以用這個例子來解釋,但首先一些背景:
進出口使用爾康任務通過命令行執行功能,這個任務將創建一個來自Model類的對象和那個對象調用一個casperjs腳本,它在網頁中執行一些動作,當它完成時它會保存一些數據,這裏是有時我得到的mysql服務器已經消失,只有當casperjs花費更長時間。 Task.php
function doSomeAction(){
$object = Class::findFirstByName("test");
$object->performActionOnWebPage();
}
在Class.php
function performActionOnWebPage(){
$result = exec ("timeout 30s casperjs somescript.js");
if($result){
$anotherObject = new AnotherClass();
$anotherObject->value = $result->value;
$anotherObject->save();
}
}
這似乎是$ anotherObject->保存();方法受時間exec(「timeout 30s casperjs somescript.js」);需要得到一個答案,當它不應該。 它不是數據保存的問題,因爲它失敗並保存與相同的輸入成功,我看到的唯一區別是時間casperjs需要返回一個值。 看來,如果由於某種原因,phalcon在「Class.php」函數的整個執行期間打開MySQL連接,在casperjs花費太長時間時引發超時,這是否有意義?你能幫我解決它或找到一個解決辦法嗎?
是的,那是我第一次猜測,但是當casperjs速度很快時,它保存所有內容都沒有問題,是相同的數據。數據也非常簡單。 – subharb
問題似乎是wait_timeout,因爲之前的casperjs將比此變量花費更多時間,現在您已經優化了casperjs代碼,因此它正在快速執行並且您沒有收到問題....絕對首先,我們必須優化代碼而不是更改DB變量盲目。 –