So beheben Sie den Fehler „Redis ist mit der Ausführung eines Skripts beschäftigt“

So beheben Sie den Fehler „Redis ist mit der Ausführung eines Skripts beschäftigt“

Meine Server stürzen wiederholt ab, weil ich von Redis den folgenden Fehler erhalte:

BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.

Ich kann jedoch nicht herausfinden, auf welches „Skript“ sich die Meldung bezieht und wie ich das Skript beenden kann. Für jede Hilfe wäre ich dankbar.

Antwort1

Der Fehler bedeutet, dass es ein lang laufendes serverseitiges Lua-Skript gibt. Ein solches Skript wird aufgerufen vonEVALoder derEVALSHARedis-Befehle. „Lange Ausführungszeit“ bedeutet, dass die Ausführungszeit des Skripts den durch die lua-time-limitKonfigurationsanweisung definierten Schwellenwert (standardmäßig 5000 ms) überschritten hat.

Da Redis ein Single-Thread-Prozess ist, antwortet es nach dem Timeout mit dem Fehler „-BUSY“, um anzuzeigen, dass es immer noch beschäftigt ist. Sie können entweder warten, bis die Ausführung des Skripts beendet ist, oder (wenn Sie beispielsweise eine Endlosschleife haben) einen der vom Fehler vorgeschlagenen Befehle ausführen, um zu versuchen, das Skript zu stoppen.

SCRIPT KILList nur erfolgreich, wenn das Skript keine Schreibvorgänge ausgeführt hat. Falls das Skript Schreibvorgänge ausgeführt hat, können Sie es nur stoppen, indem Sie den Server herunterfahren, ohne die Änderungen über zu speichern SHUTDOWN NOSAVE.

verwandte Informationen