Я хотел бы задать вопрос в соответствии с Celery и Redis с моей Django заявкой.
Как я объясню далее в деталях, у меня возникают некоторые случайные проблемы с этими приложениями.
Моя среда:
Я использую :
Мой локальный контекст: (виртуальная машина Ubuntu)
У меня есть задача сельдерея, которая отправляет электронное письмо с файлом экспорта, когда этот файл превышает 70 000 объектов. Процесс работает нормально, и я получаю ожидаемое электронное письмо со ссылкой для загрузки моего файла.
Сельдерей запущен вручную : celery -A main worker -l info
Мой контекст разработки: (сервер FreeBSD)
У меня точно такой же процесс. Но сельдерей демонизирован на моем сервере. Я могу выполнить службу сельдерея с помощью: service celeryd_app start
Когда я запускаю свою задачу с сельдереем, иногда мне нужно нажать на кнопку несколько раз, прежде чем увидеть:
Received task: app.tasks.get_xls_export[64d31ba5-73d9-4048-b19a-a4902fd904d7]
Но главная проблема, которая у меня есть: моя задача отправить электронное письмо с определенным шаблоном электронной почты, расположенным в /templates/email/email.html.
Иногда он отправляет этот шаблон электронной почты, а иногда отправляет старый шаблон, которого нет в моем проекте.
Мой вопрос:
Возможно ли, что Celery/Redis сохранился в памяти старый шаблон? Есть ли способ очистить кеш для моей конкретной службы? Потому что у меня есть другие службы сельдерея на моем сервере в соответствии с другими приложениями.
Большое спасибо !





Похоже, у вас есть незаконченные задачи, если вы хотите очистить отложенные задачи
Вы можете сделать это
from main.celery import app
app.control.purge()
или вы можете сделать celery -A main purge
Если вы хотите отказаться от задач определенной очереди, вы можете сделать
celery amqp queue.purge <queue name>
Я пробовал
app.control.purge(), но, похоже, это никак не влияет на мою задачу. Похоже, где-то хранится старый шаблон (redis или celery)..