Некоторые задачи не обрабатываются при использовании Django-Q
У меня запущен кластер django Q с такой конфигурацией:
Q_CLUSTER = {
'name': 'pretty_name',
'workers': 1,
'recycle': 500,
'timeout': 500,
'queue_limit': 5,
'cpu_affinity': 1,
'label': 'Django Q',
'save_limit': 0,
'ack_failures': True,
'max_attempts': 1,
'attempt_count': 1,
'redis': {
'host': CHANNEL_REDIS_HOST,
'port': CHANNEL_REDIS_PORT,
'db': 5,
}
}
На этом кластере у меня есть запланированное задание, которое должно выполняться каждые 15 минут.
Иногда оно работает нормально, и вот что я могу увидеть в моих рабочих журналах:
[Q] INFO Enqueued 1
[Q] INFO Process-1:1 processing [oranges-georgia-snake-social]
[Q] INFO Process-1 created a task from schedule [2]
[ My Personal Custom Task Log]
[Q] INFO Processed [oranges-georgia-snake-social]
Но в других случаях задание не запускается, вот что я получаю в журнале:
[Q] INFO Enqueued 1
[Q] INFO Process-1 created a task from schedule [2]
И потом ничего в течение следующих 15 минут.
Есть идеи, откуда это может взяться?
Итак, это была моя среда prod, и похоже, что моя среда dev использовала ту же самую базу данных redis, и хотя на моей среде dev не существовало никакой задачи, похоже, что это и было причиной проблемы.
Решением было изменение db redis между моей dev и prod средой!