Ich bekomme diesen Fehler "Allgemeiner Fehler: 2006 MySQL-Server ist verschwunden" beim Speichern eines Objekts.2006 MySQL-Server ist beim Speichern des Objekts weggegangen
Im nicht, da es geht um den Code einzufügen viel zu kompliziert, und ich kann mit diesem Beispiel erklären, aber zuerst ein wenig Kontext:
Im eine Funktion über die Kommandozeile mit Phalcon Aufgaben ausführen, schafft diese Aufgabe eines Objekt aus einer Model-Klasse und dieses Objekt ruft ein Casperjs-Skript, das einige Aktionen in der Webseite ausführt, wenn es fertig ist, speichert einige Daten, hier ist manchmal Ich bekomme mysql Server ist weggegangen, nur wenn die Casperjs dauert ein bisschen länger. Task.php
function doSomeAction(){
$object = Class::findFirstByName("test");
$object->performActionOnWebPage();
}
In Class.php
function performActionOnWebPage(){
$result = exec ("timeout 30s casperjs somescript.js");
if($result){
$anotherObject = new AnotherClass();
$anotherObject->value = $result->value;
$anotherObject->save();
}
}
Es ist wie die $ anotherObject-> save() scheint; Methode ist von der Zeit exec betroffen ("timeout 30s casperjs somescript.js"); braucht um eine Antwort zu bekommen, wenn es nicht sollte. Es geht nicht um die gespeicherten Daten, da es fehlschlägt und erfolgreich mit der gleichen Eingabe gespeichert wird. Der einzige Unterschied, den ich sehe, ist die Zeit, die casperjs benötigt, um einen Wert zurückzugeben. Es scheint so, als ob phalcon die MySQL-Verbindung während der gesamten Ausführung der "Class.php" -Funktion öffnen würde, was die Zeitüberschreitung bei casperjs zu lange provoziert. Könnten Sie mir helfen, das Problem zu beheben oder einen Workaround zu finden?
Ja, das war meine erste Vermutung, aber wenn die Casperjs schnell ist, speichert sie alles ohne Probleme, da es sich um dieselben Daten handelt. Auch sind sehr einfache Daten. – subharb
Das Problem scheint wait_timeout zu sein, da frühere Casperjs mehr Zeit benötigen als diese Variable und jetzt haben Sie Casperjs Code optimiert, so dass es schnell ausgeführt wird und Sie kein Problem bekommen .... Zuerst müssen wir unseren Code optimieren, anstatt DB-Variablen zu ändern blindlings. –