2014-11-20 2 views
1

Я новый прокат в компании, использующей Django с сельдереем для асинхронной связи. Я тоже знаком с сельдереем.Почему сельдерей пытается выполнить задачу, которая больше не существует?

Предыдущий программист оставил задание на сельдерей, которое устарело. Каждые 30 секунд он выполняет некоторые извлечения базы данных, выполняет кучу логики и затем отбрасывает результаты. Похоже, что это был тупик, позже была завершена другая система, и на самом деле это было сделано.

Я удалил определение задачи из источника питона файл был найден в, а также удалить следующий раздел из нашего settings.py файла:

CELERYBEAT_SCHEDULE = { 
    "runs-every-30-seconds": { 
     "task": "foo.tasks.execute_useless_task", 
     "schedule": timedelta(seconds=30), 
    }, 
} 

Проблема заключается в том, что сельдерей все еще пытается выполнить это когда я начинаю джанго и сельдерей через супервизора. Из /var/log/supervisor/celeryd-stdout---supervisor-FZ2Xqo.log (строки усечена для краткости):

ERROR 2014-11-20 15:26:35,637 base+498 Failed to submit message: u'Unknown task ignored: Task of kind \'foo.tasks.execute_useless_task\' is not registered, please make sure it\'s imported... 
ERROR 2014-11-20 15:26:35,751 base+504 Unknown task ignored: Task of kind 'foo.tasks.execute_useless_task' is not registered, please make sure it's imported... 
ERROR 2014-11-20 15:26:35,764 base+504 Unknown task ignored: Task of kind 'foo.tasks.execute_useless_task' is not registered, please make sure it's imported... 
...and so on... 

Я пытался читать через сельдерея документы в течение всего дня, чтобы выяснить, как именно сельдерей мог узнать о задаче, теперь, когда я удалил все следы от нашей кодовой базы (при одновременном выводе в 50 разных направлениях, будучи разработчиком, администратором и службой технической поддержки, в то же время, естественно). Большая часть документации или обсуждения, которые я нашел, находится вокруг НЕИСПРАВНОСТИ для выполнения задач и изменения направлений, которые я нашел вокруг, которые ни к чему не привели.

Если кто-нибудь может направить меня в какую-то документацию, в которой точно указаны все способы регистрации задач с помощью сельдерея через Django, чтобы я мог понять, как сельский сельдерей мог знать, что эта задача существует, я был бы признателен.

ответ

1

Ответил на мой вопрос.

Я ожидал, что очередь сообщений будет пустой, но это не так. Очистка из Redis Устранена проблема для меня:

# redis-cli 
> FLUSHDB 
> FLUSHALL 

Ответил вопросом: How do I delete everything in Redis?

Смежные вопросы