Fehler: kann Nicht enqueue-Abfrage nach fatalem Fehler im mysql-Knoten

Ich bin mit felixge/node-mysql. Auch ich bin mit express-myconnection, die verhindert, dass mysql timeout und wiederum verhindert, dass das töten von node-server. Was ich mache, ist die Protokollierung der Aktivitäten in mysql. Das Szenario ist, ich habe ein Datei-upload-Funktion, sobald die Datei hochgeladen ist, ich bin die Durchführung verschiedener Operationen auf der Datei. Während jeder Phase der Verarbeitung bin ich die Protokollierung dieser Aktivitäten in der Datenbank. Dies funktioniert gut, wenn die Datei ist klein. Wenn die Datei groß ist, sagen wir 100 MB, es dauert einige Zeit zu laden, also in die mittlere Zeit, die der mysql-server verbindet und schafft einen neuen Anschluss, aber der logging-code verwendet immer noch die alte Referenz. Fehler: kann Nicht enqueue-Abfrage nach fatalem Fehler. So, meine Frage ist gibt es eine Möglichkeit, dass ich die neue Verbindung verwenden, Referenz anstelle des alten ein. Es gibt eine einzige Funktion, in der all die verschiedenen Phasen der Aktivitäten in Bezug auf die Datei erfolgt. Jede Hilfe wird sehr geschätzt. Dank

Hallo @paul, wenn Sie gesehen haben, die gist-link können Sie sehen, dass ich die hochladen.auf('begin', function (fileInfo, reqs, resp) { } wo ich angemeldet haben, die Aktivität, Datei-upload-Prozess beginnen. Sobald die Datei hochgeladen ist, hochladen.auf('end', function (fileInfo,request,response) { } ausgelöst wird. Ich bin auch Anmeldung gewisse Aktivität hier. Wie ich schon in meiner Frage, wenn die Datei groß ist, das hochladen dauert seine Zeit. In der Zwischenzeit eine neue MySql-Verbindung wird erstellt, aber die insert-Abfrage in 'Ende' Ereignis bezieht sich noch auf die alte myconnection. Also, ich wollte wissen, wie kann ich den neuen mysql-Verbindung Referenz in diesem Szenario? Ich hoffe, das erklärt hat, das Szenario besser.

Zeigen einige Codes, bitte.
Bitte überprüfen Sie den link gist.github.com/anonymous/ac4310635d6087cc6fe98d2cc27e27d9 Die erste insert-Anweisung funktioniert, wenn der upload-Prozess beginnt. Aber die zweite insert ist der Startschuss wenn ein upload-Vorgang abgeschlossen ist.Hier bezieht sich noch auf die alte Referenz von mysql-Prozess.
Ich bin immer noch nicht zu verstehen deine Frage. Sollten Sie eine andere Verbindung für jede Einheit der Arbeit. Verlassen Sie sich nicht auf Ihre Veranstaltungen abgegeben werden, innerhalb eines bestimmten Zeitrahmens.
Hallo @paul, ich habe erklärt, das Szenario in der oben genannten Frage. Bitte haben Sie einen Blick auf es.
Tut mir Leid, dies immer noch nicht die für mich Sinn machen. Von Ihrem Kern, wie es aussieht, bist du mit dem "pool" - option aus dem express-myconnection. Gegeben, dass Sie Fragen, die middleware, um Ihnen eine Verbindung jedes mal, wenn Sie wollen, um eine Abfrage machen (in der begin-und end-Stufen), sollten Sie verlassen sich auf Sie zum verwalten Ihrer verbindungen für Sie aus einem pool, und keine sorgen über, ob die Verbindung der 'gleichen' oder nicht.

InformationsquelleAutor Rahul Singh | 2016-06-03

Schreibe einen Kommentar