问题标签 [celerybeat]

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 回答
464 浏览

python - crontabs 和 celery beat

我想在我的 python 项目中开发一个异步任务,该任务每天在特定时间运行一次。

我对使用此功能的各种方法进行了很多研究,但我对它们的功能和它们的功能感到非常celery beat困惑crontabs。如果有人帮助我理解两者之间的区别(如果有的话),我会很高兴,包括它们的性能考虑。

0 投票
1 回答
929 浏览

celery - django-celery PeriodicTask 和 eta 字段

我有一个与 celery 相结合的 django 项目,我的需要是能够在未来的某个时候动态地安排任务,无论是否重复。我需要能够删除/编辑已安排的任务

因此,为了在开始时实现这一点,我开始使用带有 DatabaseScheduler 的 django-celery 来将一些 PeriodicTasks(过期)存储到数据库中,因为这里或多或少地有所描述

这样,如果我关闭我的应用程序并重新启动它,我的日程安排仍然存在

我的问题仍然存在,因为我无法使用 eta 并在将来的某个时间安排任务。是否有可能以某种方式使用eta动态安排任务?

我的第二个问题是我是否可以安排一次性任务,例如安排它在 2015-05-15 15:50:00 运行(这就是我尝试使用 eta 的原因)

最后,我将安排数千条通知,celery beat 是否能够处理这么多的预定任务?其中一些是一次性的,而另一些是周期性的?还是我必须使用更高级的解决方案,例如APScheduler

谢谢

0 投票
1 回答
2595 浏览

django - 芹菜没有在生产中运行

我正在尝试在生产中运行 celery 和 celerybeat。在我当前的 django 应用程序中,我可以使用命令“celery -A Gorgon worker”和“celery -A Gorgon beat -l debug --max-interval=10”进行测试和运行。另外,我正在通过 virtualenv 运行它。另外,我使用 redis 作为任务代理。

整个应用程序在 gunicorn 服务器上运行。但是,当我尝试守护进程时,它会因 111 连接错误而失败。

我已将https://github.com/celery/celery/tree/3.0/extra/generic-init.d中所需的脚本添加到目录 /etc/init.d

至于 /etc/defaults 中的脚本,它们看起来像这样:

我的芹菜脚本如下

我的 celerybeat 脚本是

如何使用 /home/ubuntu/sites/virtualenv 中的当前虚拟环境让我的 celery 设置作为守护进程运行

0 投票
1 回答
4490 浏览

python - Celery beat 在生产中使用主管

我正在尝试使用主管从我的虚拟环境中运行 celery beat。脚本似乎不起作用

我所有的主管脚本都在目录中/etc/supervisord 它有一个supervisord.conf文件和conf.d包含该文件的目录Gorgon-celery.conf

我的supervisord.conf文件如下所示:

我的Gorgon-celery.conf文件如下所示:

最后对主管来说,我正在使用命令:sudo supervisord -c /etc/supervisord/supervisord.conf

0 投票
1 回答
1311 浏览

python - 如何创建一个在启动 Django 应用程序时无限期运行的单例 celery 任务?

现在我有一个@sharedtask完全遵循以下代码的代码:http: //docs.celeryproject.org/en/latest/tutorials/task-cookbook.html#id1

以及以下调度程序设置:

但是我的两个工人似乎不止一次地运行该任务,大概是因为一个工人有并发线程?如何确保任务仅由单个工作线程上的单个线程运行一次?

我在外壳中看到的示例:

编辑:我正在使用Procfilewith heroku。

0 投票
1 回答
6034 浏览

python - 芹菜,AttributeError:“模块”对象没有属性“芹菜配置”

我正在尝试通过 Python-Celery 设置周期性任务。以下是我的项目结构:

芹菜.py

芹菜配置文件

任务.py

当我尝试使用命令启动芹菜工人时

我收到以下错误:-

如果我从 celeryconfig.py 中删除 Periodic 任务所需的代码,则 Worker 运行良好,即以下部分:-

请帮忙!

0 投票
1 回答
481 浏览

django - celery beat 消息永远不会到达rabbitmq

我在用 celery beat 执行某些任务时遇到很多问题。像下面这样的一些任务会被beat触发,但rabbitmq永远不会收到消息。

在我的 django 设置文件中,我有以下周期性任务

在 10 UTC 节拍按预期执行任务

但是这条消息永远不会到达rabbitmq(我正在使用rabbitmq中的跟踪模块来跟踪传入的消息)。我还有其他几项似乎运行良好的任务,但某些任务(如上述任务)从未运行。使用 cron.tasks.update_locations.delay() 在 django 中手动运行任务可以毫无问题地运行任务。请注意,我的 Rabbitmq 与 beat 位于不同的服务器上。

我能做些什么来确保消息实际上是由 rabbitmq 发送和/或接收的吗?是否有更好的或其他方式来安排这些任务以确保它们运行?

0 投票
1 回答
1029 浏览

django - Celerybeat 服务未启动

我正在尝试让 celery 作为服务运行,但我遇到了 CELERYBEAT_OPTS 参数的问题。我可以很好地启动 celery 服务,并且可以通过命令行很好地启动 celerybeat,如下所示:

但是当我像这样启动 celerybeat 服务时:

它没有开始。

这是我在 /etc/default/celerybeat 的 celerybeat 配置文件:

最奇怪的是,如配置文件中所述,如果我注释掉 CELERYBEAT_OPTS 行,我可以使用 service 命令正常启动服务。因此,当我在配置文件中指定 CELERYBEAT_OPTS="-S djcelery.schedulers.DatabaseScheduler" 时,某些原因导致服务无法启动。有没有人知道这里发生了什么或者我如何能够解决它?谢谢你。

0 投票
1 回答
765 浏览

redis - 带有 Redis 代理的 Celery 工作者无法执行 Django 任务

这些天我正在通过开发我自己的 Reddit 克隆(在 ubuntu 14.04 LTS 上)来学习 Python(2.7)/Django(1.5)。我正在尝试将 Celery(3.1) 与 Redis 结合起来,使用它来定期运行排名算法作为任务(在我的本地设置上)。但不幸的是,我连这个简单的任务都执行不了!你能帮我找出我做错了什么吗?

这是我的目录结构

芹菜.py

settings.py的补充内容如下。请注意,migrate在将“djcelery”添加到已安装的应用程序后,我确实运行了:

__init__.py

任务.py

我在终端上运行这个命令来启动一个工人:celery -A unconnectedreddit worker -l info

我得到的输出如下:

而已。我已着手在每 30 秒后定期运行此任务(请参阅我的 CELERYBEAT_SCHEDULE)。但是我的代码甚至不会导致它执行一次——我的 reddit 克隆上的排名根本不会改变。任何专家都可以指出我在这个设置中缺少什么吗?

0 投票
5 回答
16635 浏览

python - 芹菜“收到未注册类型的任务”

我已经阅读了很多与此类似的帖子,但对我来说似乎没有任何意义。

我正在尝试将 Celery PeriodicTask 配置为每 5 秒触发一次,但我被 Celery 配置问题挂断了(我认为)

通讯/tasks.py

我的应用程序/settings.py

我的错误日志的相关输出: