Hoe word die "Redis is besig met 'n script" -fout opgelos

My bedieners val herhaaldelik neer weens die volgende fout van Redis:

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

Dit lyk egter asof ek nie 'n manier kan vind om vas te stel wat hierdie 'script' is nie die boodskap verwys na en hoe ek die skrif kan beëindig. Enige hulp sal waardeer word.

0
задан 18 January 2020 в 01:04
1 ответ

Ошибка означает, что существует длительный серверный Lua-скрипт. Такой сценарий вызывается командами Redis EVAL или EVALSHA . «Длительное выполнение» означает, что время выполнения сценария превысило порог, определенный директивой конфигурации lua-time-limit (по умолчанию 5000 мс).

Поскольку Redis является однопоточным, он отвечает ошибка "-BUSY" после тайм-аута, чтобы указать, что он все еще занят. Вы можете либо дождаться завершения выполнения сценария, либо (например, если у вас есть бесконечный цикл) выполнить одну из команд, предложенных ошибкой, чтобы попытаться остановить сценарий.

SCRIPT KILL будет успешным только если скрипт не выполнял никаких операций записи. В случае, если запись была произведена сценарием, единственный способ остановить ее - выключить сервер без сохранения изменений с помощью SHUTDOWN NOSAVE .

0
ответ дан 21 January 2020 в 01:24

Теги

Похожие вопросы