django - 在我的 Django 应用程序中使用 Celery 和 Redis
问题描述
我想根据我的Celery
申请提出一个问题。正如我将进一步详细解释的那样,我在这些应用程序中遇到了一些随机问题。Redis
Django
我的环境:
我在用着 :
- Django 1.11.20
- django-redis 4.7.0 / redis >= 2.10.5
- 芹菜 4.2.1
我的本地环境:(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 服务。
非常感谢 !
解决方案
如果您想清除待处理的任务,您似乎有待处理的任务
你可以这样做
from main.celery import app
app.control.purge()
或者你可以做celery -A main purge
如果你想丢弃特定队列的任务,你可以这样做
celery amqp queue.purge <queue name>
推荐阅读
- python - 如果发现异常,是否会立即在 python 中停止尝试?
- azure-devops - Azure DevOps Mermaid 标签未居中
- javascript - 根据javascript中的条件修改现有数组对象
- proxy - react-scripts 代理 http/https 服务器正在加载 web 作为响应
- javascript - 我对 javascript 嵌套的 Promise 有一些问题
- node.js - 将来自 gmail 附件的文件存储在 Firebase 存储中
- python-3.x - 如何使用脚本获取文件
- javascript - props 未定义,尽管状态已更改
- php - 如何从 number_format 函数中删除 PHP 中的美分部分
- google-cloud-platform - JanusGraph 大规模数据摄取