У меня есть кластер 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 created a task from schedule [2]
[Q] INFO Process-1:1 processing [oranges-georgia-snake-social]
[ 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 минут.
Любая идея, откуда это может взяться?
Итак, это была моя производственная среда, и похоже, что моя среда разработки использовала ту же базу данных Redis, и хотя в моей среде разработки не существовало задачи, кажется, что это было причиной проблемы.
Решение состояло в том, чтобы изменить redis db между моей средой dev и prod!