问题标签 [django-celery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
281 浏览

django - 了解基本 celery 消息队列的工作原理

我已经实现了一个使用 celery 进行消息队列的小测试,我只是想确保我了解它在基本级别上的工作原理(Django-Celery,使用 Redis 作为代理)。

我的理解是,当我调用启动异步任务时,任务信息放在redis中,然后连接到broker的celeryd实例消费并执行任务。这基本上是正在发生的事情吗?

如果我设置了一个应该每小时执行一次的定期任务,该任务是否会在所有任务使用者上执行?如果是这样,有没有办法限制它,以便只有一个消费者会执行定期任务?

0 投票
3 回答
1902 浏览

python - 使用 Django 和 Celery 的动态页面

我在我的tasks.py文件中注册了一个 Celery 任务。当有人发布到 /run/pk 时,我使用给定的参数运行任务。此任务还执行其他任务(普通 Python 函数),并且我想在子任务完成其工作时更新我的​​页面(在 /run/pk 返回的 HttpResponse)。

这是我的任务:

0 投票
1 回答
6602 浏览

python - 通知芹菜任务工人关闭

我将 celery 2.4.1 与 python 2.6、rabbitmq 后端和 django 一起使用。如果工人关闭,我希望我的任务能够正确清理。据我所知,您无法提供任务析构函数,因此我尝试连接到worker_shutdown信号。

注意:AbortableTask仅适用于数据库后端,所以我不能使用它。

但是,关闭挂钩永远不会被调用。Ctrl-C'ing 工人不会杀死任务,我必须从 shell 手动杀死它。

因此,如果这不是正确的方法,我该如何让任务优雅地关闭?

0 投票
1 回答
18421 浏览

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

我一直在与 Django/Celery 文档作斗争,现在需要一些帮助。

我希望能够使用 django-celery 运行定期任务。我在互联网(和文档)中看到了几种不同的格式和模式,说明应该如何使用 Celery 实现这一目标......

有人可以帮助创建、注册和执行 django-celery 定期任务的基本功能示例吗?特别是,我想知道我是否应该编写一个扩展 PeriodicTask 类的任务并注册它,或者我是否应该使用@periodic_task 装饰器,或者我是否应该使用@task 装饰器,然后为任务的执行。

我不介意这三种方式是否都可行,但我希望看到至少一种可行方式的示例。非常感谢您的帮助。

0 投票
2 回答
8534 浏览

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

通过继承 PeriodicTask,我设法让周期性任务在 django-celery 中工作。我试图创建一个测试任务并让它运行一些无用的东西。有用。

现在我无法阻止它。我已阅读文档,但无法找到如何从执行队列中删除任务。我尝试过使用 celeryctl 并使用 shell,但是 registry.tasks() 是空的,所以我看不到如何删除它。

我已经看到我应该“撤销”它的建议,但为此我似乎需要一个任务 ID,而且我看不到如何找到任务 ID。

谢谢。

0 投票
2 回答
730 浏览

django - 如何关闭芹菜中的突出显示?

我正在使用 celery 管理命令在 django 应用程序中进行一些调试:

输出以非常刺眼的颜色突出显示。有什么办法可以关闭高亮吗?

0 投票
2 回答
2629 浏览

django - 为什么 RabbitMQ 不断从损坏的持久化日志文件中中断?

我正在使用RabbitMQ作为消息代理的Django应用程序中运行Celery 。但是,RabbitMQ 一直这样崩溃。首先是我从 Django 得到的错误。跟踪大多不重要,因为我知道导致错误的原因,正如您将看到的。

我知道这是由于rabbit_persister.log文件损坏所致。这是因为在我杀死与 RabbitMQ 相关的所有进程后,我运行“sudo rabbitmq-server start”来获得以下崩溃:

我当前的修复:每次发生这种情况时,我都会将相应的 rabbit_persister.log 文件重命名为其他文件(rabbit_persister.log.bak),并且能够成功重新启动 RabbitMQ。但是问题一直在发生,我不知道为什么。有任何想法吗?

另外,作为免责声明,我没有使用 Erlang 的经验;我只使用 RabbitMQ,因为它是 Celery 偏爱的代理。

在此先感谢,这个问题真的很烦我,因为我一遍又一遍地做同样的修复。

0 投票
2 回答
9953 浏览

django - django-celery warnings about settings.DEBUG

I have some questions regarding running djcelery.

When I run

The workers seem to have started but the warnings concern me:

Googled for this warning message but no one seems to care about it. Should I be concerned?

Thanks a lot!

0 投票
6 回答
18497 浏览

django - django-celery:没有配置结果后端

我正在尝试在我的项目中使用 django-celery

在 settings.py 我有

服务器开始正常

但是,如果我想访问延迟任务的结果,则会收到以下错误:

这很奇怪,因为当我只运行 celeryd(使用相同的 celery 设置)时,它工作得很好。有没有人遇到过这个问题?

提前致谢!

0 投票
3 回答
1976 浏览

django - 根据用户输入使用 django-celery 安排任务

我正在使用 django 构建一个报告门户。在这个门户中,我需要让用户能够安排报告在重复发生的基础上运行。我一直在研究 django-celery 并了解您可以使用periodic_task 装饰器来安排重复发生的任务,但在所有示例中,我看到 cron 调度信息被硬编码到装饰器中。

有没有办法使用 django-celery 根据用户的输入动态安排重复发生的任务?

例如,用户使用表单来选择他们想要运行的报告,提供报告所需的所有参数以及他们想要运行报告的时间表。处理完表单后,是否有可以调用的方法或函数将 run_report 任务添加到计划中?如果是这样,有没有办法检索存储在数据库中的所有当前时间表以便显示它们?