django-celery相关内容

芹菜,叫延时倒计时

我正在尝试了解芹菜是如何工作的 在tasks.py文件中的Django应用程序中,我创建了一个任务: @celery.shared_task(default_retry_delay=2 * 60, max_retries=2) def my_task(param1, param2): # There are some operations 我使用以下代码调用此任务: ..
发布时间:2022-02-27 13:26:27 Python

RabbitMQ/Celery/Django 内存泄漏?

我最近接手了我公司正在进行的项目的另一部分,并发现我们的 RabbitMQ/Celery 设置中似乎存在内存泄漏. 我们的系统有 2Gb 的内存,在任何给定时间大约有 1.8Gb 可用.我们有多个任务处理大量数据并将它们添加到我们的数据库中. 当这些任务运行时,它们会消耗相当多的内存,很快我们的可用内存就会下降到 16Mb 到 300Mb 之间的任何地方.问题是,这些任务完成后,内存并 ..
发布时间:2022-01-11 18:04:34 其他开发

Django、RabbitMQ 和Celery - 为什么在我更新开发中的 Django 代码后,Celery 会运行旧版本的任务?

所以我有一个 Django 应用程序,它偶尔会向 Celery 发送一个任务以进行异步执行.我发现当我在开发中处理我的代码时,Django 开发服务器知道如何自动检测代码何时发生更改,然后重新启动服务器,以便我可以看到我的更改.但是,我的应用程序的 RabbitMQ/Celery 部分并没有注意到开发中的这些变化.如果我更改稍后将在 Celery 任务中运行的代码,Celery 仍将继续运行旧版本 ..
发布时间:2022-01-11 17:57:14 Python

带有rabbitmq的芹菜创建结果多个队列

我已经用 RabbitMQ 安装了 Celery.问题是对于返回的每个结果,Celery 都会在 Rabbit 中创建,并在交换 celeryresults 中使用任务 ID 排队. 我仍然想要结果,但在 ONE 队列中. 我的芹菜配置: 从日期时间导入时间增量OKER_URL = 'amqp://'CELERY_RESULT_BACKEND = 'amqp'#CELERY_IGNO ..
发布时间:2022-01-11 17:52:39 其他开发

RabbitMQ 中的 celeryev 队列变得非常大

我在rabbitmq 上使用芹菜.我一直在向队列发送数千条消息,它们正在成功处理,一切正常.然而,几个rabbitmq队列中的消息数量正在增长相当大(队列中有数十万个项目).队列被命名为 celeryev.[...](见下面的截图).这是适当的行为吗?这些队列的目的是什么,不应该定期清除它们吗?有没有办法更频繁地清除它们,我认为它们占用了相当多的磁盘空间. 解决方案 您可以使用 CELER ..
发布时间:2022-01-11 17:44:48 其他开发

第一次更改主机名后,rabbitmq-server 无法启动

我在我的 django 项目中使用 django-celery.昨天我更改了计算机的主机名(我使用的是 Ubuntu 12.04,编辑了文件 '/etc/hostname'),下次重新启动 django-celery 失败并出现错误 消费者:连接错误:[Errno 111] 连接被拒绝.4 秒后重试... 在对此错误进行一些研究后,我发现,更改我的主机名会导致此错误来自 这里.我的rabbit ..
发布时间:2022-01-11 17:40:23 其他开发

Django 和 Celery 的示例:周期性任务

我一直在与 Django/Celery 文档作斗争,需要一些帮助. 我希望能够使用 django-celery 运行定期任务.我在互联网(和文档)中看到了几种不同的格式和模式,说明应该如何使用 Celery 实现这一目标...... 有人可以提供创建、注册和执行 django-celery 周期性任务的基本功能示例吗?特别是,我想知道我是否应该编写一个扩展 PeriodicTask 类 ..
发布时间:2022-01-11 17:39:06 其他开发

如何从 rabbitMQ 中永久删除 celery 任务?

我目前的 celery 设置有大约 10,000 个计划任务.我没有意识到计划任务是什么,并决定提前几个月使用它们发送后续电子邮件. 回想起来,将任务安排在未来超过 1 小时可能永远不是一个好主意,因为每次重新启动工作器时,它都必须重新接收来自 rabbitMQ 的每个计划任务,然后它们都只是坐在记忆. 我的问题是,如果我必须撤销一项任务,它不仅仅是删除它.任务保留在内存中,但撤销队列 ..
发布时间:2022-01-11 17:27:57 Python

通知芹菜任务工人关闭

我将 celery 2.4.1 与 python 2.6、rabbitmq 后端和 django 一起使用.如果工人关闭,我希望我的任务能够正确清理.据我所知,您无法提供任务析构函数,因此我尝试连接到 worker_shutdown 信号. 注意:AbortableTask 仅适用于数据库后端,所以我不能使用它. 从 celery.signals 导入 worker_shutdown@任务 ..
发布时间:2022-01-11 17:24:45 Python

停止/清除 Django-Celery 中的定期任务

我已经设法通过继承 PeriodicTask 让周期性任务在 django-celery 中工作.我试图创建一个测试任务并让它运行一些无用的东西.有用. 现在我无法阻止它.我已阅读文档,但无法找到如何从执行队列中删除任务.我尝试过使用 celeryctl 和 shell,但是 registry.tasks() 是空的,所以我看不到如何删除它. 我看到了我应该“撤销"它的建议,但为此我似 ..
发布时间:2022-01-11 17:05:40 其他开发

重试丢失或失败的任务(Celery、Django 和 RabbitMQ)

有没有办法确定是否有任何任务丢失并重试? 我认为丢失的原因可能是调度程序错误或工作线程崩溃. 我打算重试它们,但我不确定如何确定哪些任务需要停用? 以及如何使这个过程自动进行?我可以使用我自己的自定义调度程序来创建新任务吗? 编辑:我从文档中发现 RabbitMQ 从不丢失任务,但是当工作线程在任务执行过程中崩溃时会发生什么? 解决方案 你需要的是设置 CEL ..
发布时间:2022-01-11 17:05:03 其他开发

Django Celery 日志最佳实践

我正在尝试让 Celery 日志记录与 Django 一起工作.我在 settings.py 中进行了日志设置以进入控制台(这很好用,因为我在 Heroku 上托管).在每个模块的顶部,我有: 导入日志logger = logging.getLogger(__name__) 在我的tasks.py中,我有: from celery.utils.log import get_task_logg ..
发布时间:2021-12-19 10:25:50 Python

如何在 Celery 中检查任务状态?

如何检查一个任务是否在 celery 中运行(具体来说,我使用的是 celery-django)? 我已经阅读了文档,也用谷歌搜索过,但我看不到这样的电话: my_example_task.state() == 正在运行 我的用例是我有一个用于转码的外部 (java) 服务.当我发送要转码的文档时,我想检查运行该服务的任务是否正在运行,如果没有,则(重新)启动它. 我使用的是当前的 ..
发布时间:2021-12-11 17:59:07 Python

如何使用 AWS Elastic Beanstalk 可扩展的 Django 应用程序运行 celery worker?

如何将 Django 与 AWS Elastic Beanstalk 一起使用,同时也只能在主节点上通过 celery 运行任务? 解决方案 这是我在弹性 beantalk 上使用 django 设置 celery 的方式,可扩展性工作正常. 请记住,container_commands 的'leader_only'选项仅适用于环境重建或部署强>的应用程序.如果服务运行时间足够长,E ..