首页 > 解决方案 > 在我的 Django 应用程序中使用 Celery 和 Redis

问题描述

我想根据我的Celery申请提出一个问题。正如我将进一步详细解释的那样,我在这些应用程序中遇到了一些随机问题。RedisDjango

我的环境:

我在用着 :

我的本地环境:(Ubuntu 虚拟机)

我有一个芹菜任务,当这个文件大于 70.000 个对象时,它会发送一封带有导出文件的电子邮件。该过程运行良好,我收到了预期的电子邮件,其中包含下载文件的链接。

芹菜是手动启动的:celery -A main worker -l info

我的开发环境:(FreeBSD 服务器)

我有完全相同的过程。但是芹菜在我的服务器上被守护了。我可以执行芹菜服务:service celeryd_app start

当我启动我的 celery 任务时,有时我需要先点击几次按钮才能看到:

Received task: app.tasks.get_xls_export[64d31ba5-73d9-4048-b19a-a4902fd904d7]

但我遇到的主要问题是:我的任务发送一封电子邮件,其中包含位于/templates/email/email.html.

有时它会发送此电子邮件模板,有时它会发送我的项目中不存在的旧模板。

我的问题:

是否有可能Celery/Redis在内存中保存了一个旧模板?有没有办法为我的特定服务清理缓存?因为根据其他应用程序,我的服务器上还有其他 celery 服务。

非常感谢 !

标签: djangorediscelerydjango-celeryceleryd

解决方案


如果您想清除待处理的任务,您似乎有待处理的任务

你可以这样做

from main.celery import app
app.control.purge()

或者你可以做celery -A main purge

如果你想丢弃特定队列的任务,你可以这样做

celery amqp queue.purge <queue name>


推荐阅读