Я использую библиотеку сельдерея с Python для параллельной обработки некоторых довольно больших наборов данных.Но ежедневный cronjob, который я запускаю, прерывается каждые два или три дня, выдавая следующую ошибку.
CRITICAL/MainProcess] Unrecoverable error: ResponseError('MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.',)
Журнал Redis выглядит как
7633:M 12 Apr 07:56:28.284 * 1 changes in 900 seconds. Saving...
7633:M 12 Apr 07:56:28.288 * Background saving started by pid 9530
9530:C 12 Apr 07:56:28.372 * DB saved on disk
9530:C 12 Apr 07:56:28.373 * RDB: 2 MB of memory used by copy-on-write
7633:M 12 Apr 07:56:28.388 * Background saving terminated with success
7633:M 12 Apr 08:01:29.065 * 10 changes in 300 seconds. Saving...
7633:M 12 Apr 08:01:29.065 # Can't save in background: fork: Cannot allocate memory
7633:M 12 Apr 08:01:35.083 * 10 changes in 300 seconds. Saving...
7633:M 12 Apr 08:01:35.088 * Background saving started by pid 9998
9998:C 12 Apr 08:01:35.099 * DB saved on disk
9998:C 12 Apr 08:01:35.101 * RDB: 2 MB of memory used by copy-on-write
7633:M 12 Apr 08:01:35.188 * Background saving terminated with success
Соответствующие конфигурации системы:
- Python 3.6
- Сельдерей 4.2.1
- Redis Server и CLI 4.0.9
- Ubuntu 18.04 (Bionic)
Самое смешное, что точно такая же конфигурация и система работают на другом (разработка) сервер, а также еще один, работающий под управлением Ubuntu 16.04.Но производство один терпит неудачу.Обратите внимание, что я не большой специалист по сельдерею и редису, только что получил код, работающий после большого количества поисков в Google и после некоторых уроков.Поэтому, пожалуйста, постарайтесь сохранить шаги по устранению неполадок в относительно элементарной формеКроме того, когда я пингую redis-cli на оболочке, я получаю понг взамен, что говорит о том, что сервер работает.