问题标签 [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.
mysql - 芹菜、Django 和 PyMySQL
我有一个连接到 MySQL 数据库的 django 应用程序,它使用PyMySQL而不是 MySQLdb。有关更多详细信息,请参阅有关此问题的流行答案。
现在,我有必要使用Celery创建一个周期性任务。我在这里遵循了定期任务的文档。
当我运行命令时,celery -A proj beat
我收到以下错误:
它涉及一个 MySQLdb 模块,但我认为我没有使用 MySQLdb。有人可以就如何解决这个问题提供任何建议吗?
python - 在给定的小时和分钟使用 crontab 时,周期性任务不起作用
我正在尝试运行在一个简单的python脚本中定义的定期任务:
这是我正在使用的命令行:
当我使用crontab(minute='*')
它时,它工作得很好但是,当我尝试它时:
它不起作用(任务不运行)。
我正在使用python 2.7
, 和celery 3.1.16
在 Windows 8.1 中。
rabbitmq - 芹菜需要很长时间才能将结果写入rabbitmq
最近,我开始celery beat
定期运行一个任务。该任务大约需要 2 分钟。节拍间隔为 3 分钟。后端使用rabbitmq。
但是,一个任务的总耗时变成了将近 20 分钟。它看起来很奇怪!经过一番工作,我发现sending task result to rabbitmq
. 太棒了!为什么?
而 celery worker 会再用 5 到 7 分钟来接下一个任务。我不知道工人这段时间在做什么。
任何人都可以帮忙解释一下吗?
python - 芹菜自动重载不起作用
我正在使用 Celery 3.1.16 代理(运行 RabbitMQ)和多个 Celery 工作人员,其中 celeryd 通过主管进行了守护。问题在于任务更新。当我更新我的 tasks.py 文件时,celery worker 运行旧代码。
芹菜启动命令:
我在 django settings.py 中包含任务文件:
pyinotify已安装并且可以工作(我猜是这样),它是 celery 日志的一部分:
所以,我的问题是:如果它们被修改,如何获取 celery 更新和应用新任务代码?
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!
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。知道会发生什么吗?谢谢!
celery - 任务在随机尝试次数后停止重试
正如主题所说,过去重试直到达到定义的“max_retries”计数的任务现在有时会在随机次数后停止这样做:/。有时他们会在几百次之后停止重试,有时只是几次之后。
我注意到的是,如果我重新启动“芹菜节拍”过程 - 几分钟后,一些“相当”几个小时的任务会重新开始重试。
无法准确确定它何时开始发生,但可能是在升级 Celery、RabbitMQ 或 Django 之后。
有人知道为什么会这样吗?
我在跑:
芹菜设置:
任务代码看起来不错。像这样:
谢谢,劳里斯
python - 如何将 celery beat 作为守护进程运行?
我知道 celeryd 有一个命令可以作为守护进程运行,即;celeryd_detach。但是如何使用任何命令将 celery-beat 作为守护进程运行呢?请帮助我。
TIA
python - celerybeat - 多个实例和监控
我正在使用 celery 构建应用程序,最近我们需要按计划运行某些任务。
我认为 celerybeat 非常适合这个,但我有几个问题:
- 是否可以运行多个 celerybeat 实例,从而不重复任务?
- 如何确保 celerybeat 始终正常运行?
到目前为止,我读到了这个: https ://github.com/celery/celery/issues/251 和 https://github.com/ybrs/single-beat
看起来应该运行一个 celerybeat 实例。
我在 AWS elasticbeanstalk docker 容器中运行应用程序,celery 工人也是 docker 容器(因此在需要时可以快速扩展)。
最好让 celerybeat 与 celery 工人一起通过 supervisord,但似乎这不是正确的方法。
同时,拥有单个 celerybeat 实例需要手动配置/启动和监控。
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: