Я использую рабочий сервер сельдерея с Redis в качестве URL-адреса брокера (для получения задач), а также в качестве бэкэнда.
BROKER_URL = 'redis://localhost:6379/2'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/2'
app = Celery('myceleryapp', broker=BROKER_URL,backend=CELERY_RESULT_BACKEND)
Я запускаю рабочий сервер сельдерея, используя celery -A myceleryapp worker -l info -c 8
Рабочие процессы начинают обрабатывать мои задачи из очереди Redis до тех пор, пока в какой-то момент я не получаю печально известную ошибку MISCONF redis, и рабочий процесс celery завершается.
Unrecoverable error: ResponseError('MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.',)
Я проверил файлы журнала Redis в /var/log/redis
, и в конце файла есть следующее
24745:C 19 Aug 09:20:26.169 * RDB: 0 MB of memory used by copy-on-write
1590:M 19 Aug 09:20:26.247 * Background saving terminated with success
1590:M 19 Aug 09:25:27.080 * 10 changes in 300 seconds. Saving...
1590:M 19 Aug 09:25:27.081 * Background saving started by pid 25397
25397:C 19 Aug 09:25:27.082 # Write error saving DB on disk: No space left on device
1590:M 19 Aug 09:25:27.181 # Backgroun1590:M 19 Aug 09:51:03.042 * 1 changes in 900 seconds. Saving...
1590:M 19 Aug 09:51:03.042 * Background saving started by pid 26341
26341:C 19 Aug 09:51:03.405 * DB saved on disk
26341:C 19 Aug 09:51:03.405 * RDB: 22 MB of memory used by copy-on-write
1590:M 19 Aug 09:51:03.487 * Background saving terminated with success
Файл dump.rdb записывается в /var/lib/redis/dump.rdb
. Поскольку журналы сообщили о No space left on device
, я проверил место на диске, где смонтировано /var
, и, кажется, осталось достаточно места (1.2GB
).
Как добраться до основной причины этой ошибки, если на диске достаточно места? Конечно, чтобы этой ошибки не было, я мог бы установить config set stop-writes-on-bgsave-error no
в redis-cli. Но я хочу добраться до основной причины этой ошибки. Любая помощь или указатели?