Ich habe ein seltsames Problem. Ich führe eine MySQL-Abfrage gegen eine sehr große Tabelle von PHP aus. Die Abfragezeit ist über eine Minute, aber das ist nicht mein Problem. Es sieht so aus, als würde PHP die Abfrage alle 66 Sekunden erneut senden.
%Vor%Ein paar Minuten später habe ich noch einmal nachgesehen:
%Vor%Ich habe die Seite oder irgendetwas nicht neu geladen. set_time_limit (0) wird nahe dem Anfang des Skripts aufgerufen. Der nervige Teil ist, die Seite scheint mit der zuletzt gelaufenen verlinkt zu sein. Wenn ich also 150018 töte, passiert nichts Schlimmes, aber wenn ich 150023 killiere, bevor ein anderer erzeugt wird, kommt es zu der Fehlermeldung "Abfrageausführung unterbrochen". 150018 wird schließlich selbständig ausgeführt, aber es bringt nichts, weil das Skript / die Seite es nicht empfängt.
Hat jemand Ideen?
EDIT: show full processlist gibt Folgendes (mit einigen Zeilen, die der Kürze und Vertraulichkeit halber entfernt wurden):
%Vor%Ich habe ein ähnliches Problem ein paar Mal zuvor gesehen, und Ihre Probleme klingen sehr ähnlich zu dem, was ich beim Arbeiten mit einer vorherigen Website erlebt habe.
Gehen Sie einen Proxy-Server durch, wenn Sie auf die Website gehen?
Was mit meiner Site passierte, war, dass die Anfragen von einer bestimmten Gruppe von Benutzern innerhalb derselben Firma über ihren Proxy-Server geleitet wurden, der für sich selbst entschied, dass wenn keine Antwort innerhalb von 60 Sekunden empfangen würde Stellen Sie einfach die Web-Anfrage erneut aus, ohne den Client-Browser darüber zu informieren, dass dies der Fall ist!
Wenn also einige lange Abfragen eine Minute dauern würden, würde ich sehen, dass die Abfragen sich gegenseitig aufteilen, und dann würde ich mir eine Prozessliste mit vielen identischen Abfragen ansehen, die alle laufen um fast genau 60 Sekunden getrennt!
Die Lösung bestand darin, den Client dazu zu bringen, seinen Proxy-Server für unsere Site zu umgehen.
Eine zweite Instanz dieses genau gleichen Problems wurde behoben, als der Client seinen Proxy-Server auf die neueste Version aktualisierte.
Tut mir leid, aber ich kann mich nicht erinnern, welcher Proxy-Server in beiden Fällen benutzt wurde, wie es vor einigen Monaten war, und ich habe seitdem geschlafen: - /