在我的Django应用程序中使用Celery和Redis

时间:2019-03-05 12:32:23

标签: django redis celery django-celery celeryd

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

我的环境:

我正在使用:

  • Django 1.11.20
  • django-redis 4.7.0 / redis> = 2.10.5
  • 芹菜4.2.1

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

我有一个celery任务,当该文件大于70.000个对象时,该电子邮件会发送带有导出文件的电子邮件。该过程运行正常,我收到了包含链接的预期电子邮件,以下载我的文件。

Celery是手动启动的: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的旧模板保存在内存中?有没有一种方法可以清除我的特定服务的缓存?因为根据其他应用程序,我的服务器上还有其他芹菜服务。

非常感谢您!

1 个答案:

答案 0 :(得分:0)

如果您想clear the pending tasks

,看起来您有待处理的任务

你可以这样做

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

或者您可以执行celery -A main purge

如果要丢弃特定队列的任务,可以执行

celery amqp queue.purge <queue name>