问题标签 [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 投票
2 回答
942 浏览

mysql - 芹菜、Django 和 PyMySQL

我有一个连接到 MySQL 数据库的 django 应用程序,它使用PyMySQL而不是 MySQLdb。有关更多详细信息,请参阅有关此问题的流行答案。

现在,我有必要使用Celery创建一个周期性任务。我在这里遵循了定期任务的文档。

当我运行命令时,celery -A proj beat我收到以下错误:

它涉及一个 MySQLdb 模块,但我认为我没有使用 MySQLdb。有人可以就如何解决这个问题提供任何建议吗?

0 投票
2 回答
2504 浏览

python - 在给定的小时和分钟使用 crontab 时,周期性任务不起作用

我正在尝试运行在一个简单的python脚本中定义的定期任务:

这是我正在使用的命令行:

当我使用crontab(minute='*')它时,它工作得很好但是,当我尝试它时:

它不起作用(任务不运行)。

我正在使用python 2.7, 和celery 3.1.16在 Windows 8.1 中。

0 投票
0 回答
312 浏览

rabbitmq - 芹菜需要很长时间才能将结果写入rabbitmq

最近,我开始celery beat定期运行一个任务。该任务大约需要 2 分钟。节拍间隔为 3 分钟。后端使用rabbitmq。

但是,一个任务的总耗时变成了将近 20 分钟。它看起来很奇怪!经过一番工作,我发现sending task result to rabbitmq. 太棒了!为什么?

而 celery worker 会再用 5 到 7 分钟来接下一个任务。我不知道工人这段时间在做什么。

任何人都可以帮忙解释一下吗?

0 投票
3 回答
3539 浏览

python - 芹菜自动重载不起作用

我正在使用 Celery 3.1.16 代理(运行 RabbitMQ)和多个 Celery 工作人员,其中 celeryd 通过主管进行了守护。问题在于任务更新。当我更新我的 tasks.py 文件时,celery worker 运行旧代码。

芹菜启动命令:

我在 django settings.py 中包含任务文件:

pyinotify已安装并且可以工作(我猜是这样),它是 celery 日志的一部分:

所以,我的问题是:如果它们被修改,如何获取 celery 更新和应用新任务代码?

0 投票
0 回答
553 浏览

python - How to use Celery with a database of schedule items and not repeat tasks

I'm looking into Celerybeat for launching tasks that are scheduled at various times based upon a database:

e.g.

There could be many many tasks that fire at the same time.

I was thinking I would have Celerybeat fire off every minute to collect all the tasks for a particular minute and fire them off.

But I also want to be able to make sure I don't miss any tasks if Celerybeat goes down, and I don't want to repeat any tasks.

Because of the state machine I'm seeing this requiring for each task instance, I'm feeling like there's a much easier way to do this.

Or, is the best practice really to create a log for each task instance being fired and put it in multiple states: "not processed", "processing", "done", "error..." etc?

Thanks!

0 投票
0 回答
1016 浏览

celery - 芹菜节拍无声地失败

我遇到了一个 celery beat 工人没有向 celery 发送任务的问题。Celery 在三台服务器上运行,在 HAProxy 后面有一个 RabbitMQ 集群作为后端。

Celery beat 用于安排每天早上 9 点的任务。当我启动worker时,通常第一个任务成功,但之后似乎以下任务从未发送到rabbitmq。在 celery beat 日志文件中(使用该-l debug选项运行 celery beat),我看到诸如: 之类的消息Scheduler: Sending due task my-task (tasks.myTask),但没有任何 celery worker 正在接收任务的迹象。

我还尝试通过 rabbitmq_tracing 插件在 rabbitmq 中记录消息,这只是确认任务从未到达 rabbitmq。知道会发生什么吗?谢谢!

0 投票
0 回答
347 浏览

celery - 任务在随机尝试次数后停止重试

正如主题所说,过去重试直到达到定义的“max_retries”计数的任务现在有时会在随机次数后停止这样做:/。有时他们会在几百次之后停止重试,有时只是几次之后。

我注意到的是,如果我重新启动“芹菜节拍”过程 - 几分钟后,一些“相当”几个小时的任务会重新开始重试。

无法准确确定它何时开始发生,但可能是在升级 Celery、RabbitMQ 或 Django 之后。

有人知道为什么会这样吗?

我在跑:

芹菜设置:

任务代码看起来不错。像这样:

谢谢,劳里斯

0 投票
2 回答
4507 浏览

python - 如何将 celery beat 作为守护进程运行?

我知道 celeryd 有一个命令可以作为守护进程运行,即;celeryd_detach。但是如何使用任何命令将 celery-beat 作为守护进程运行呢?请帮助我。

TIA

0 投票
3 回答
8480 浏览

python - celerybeat - 多个实例和监控

我正在使用 celery 构建应用程序,最近我们需要按计划运行某些任务。

我认为 celerybeat 非常适合这个,但我有几个问题:

  1. 是否可以运行多个 celerybeat 实例,从而不重复任务?
  2. 如何确保 celerybeat 始终正常运行?

到目前为止,我读到了这个: https ://github.com/celery/celery/issues/251 和 https://github.com/ybrs/single-beat

看起来应该运行一个 celerybeat 实例。

我在 AWS elasticbeanstalk docker 容器中运行应用程序,celery 工人也是 docker 容器(因此在需要时可以快速扩展)。

最好让 celerybeat 与 celery 工人一起通过 supervisord,但似乎这不是正确的方法。

同时,拥有单个 celerybeat 实例需要手动配置/启动和监控。

0 投票
1 回答
1782 浏览

python - 芹菜 - 每个任务/进程只有一个实例?

在 celery 文档中,实例化部分(http://celery.readthedocs.org/en/latest/userguide/tasks.html#custom-task-classes)说明如下:

任务不是针对每个请求都实例化,而是在任务注册表中注册为全局实例。

这意味着每个进程只会调用一次 init 构造函数,并且任务类在语义上更接近于 Actor。

然而,当我运行以下示例时,我看到init方法至少被调用了 3 次。设置有什么问题?CELERYD_CONCURRENCY = 1应该确保每个工人只有一个进程,对吗?

$ celery -A proj beat

芹菜.py:

任务.py: