gpt4 book ai didi

python - Celerybeat 没有按预期工作

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:40 24 4
gpt4 key购买 nike

我正在使用 Bottle 构建一些项目,我需要它定期运行某些预定的操作。

我决定使用 rabbitmq + celery,因为这似乎是以编程方式管理计划工作的最强大和最完整的解决方案。

我安装了 rabbitmq 和 celery 没问题,当我使用 celeryd -B 时,任务顺利完成。然而,当我使用 celerybeat 命令时,任务被“发送”(或者说输出,因为我使用 -l 调试选项同时运行 celeryd 和 celerybeat 以更详细),但尽管它们经常被“发送”,但它们不会t 被执行(出于测试目的,任务应该每 60 秒将当前时间戳附加到文件中)。无论如何,其他一切工作正常,因为同一目录中的 celeryd -B 命令工作正常,它以预期的时间间隔写入文件。

我错过了什么吗?

这是 $celerybeat -l debug 的输出:

[2012-06-30 18:07:44,676: WARNING/MainProcess] celerybeat v2.5.5 is starting.
[2012-06-30 18:07:44,750: WARNING/MainProcess] __ - ... __ - _
Configuration ->
. broker -> amqp://guest@localhost:5672//
. loader -> celery.loaders.default.Loader
. scheduler -> celery.beat.PersistentScheduler
. db -> celerybeat-schedule
. logfile -> [stderr]@DEBUG
. maxinterval -> 5.00 minutes (300s)
[2012-06-30 18:07:44,751: DEBUG/MainProcess] Setting default socket timeout to 30
[2012-06-30 18:07:44,751: INFO/MainProcess] Celerybeat: Starting...
[2012-06-30 18:07:44,776: DEBUG/MainProcess] Current schedule:
<Entry: celery.backend_cleanup celery.backend_cleanup() {<crontab: 0 4 * (m/h/d)>}
<Entry: often tasks.output() {<freq: 1.00 minute>}
[2012-06-30 18:07:44,776: DEBUG/MainProcess] Celerybeat: Ticking with max interval->5.00 minutes
[2012-06-30 18:07:44,781: DEBUG/MainProcess] Start from server, version: 8.0, properties: {u'information': u'Licensed under the MPL. See http://www.rabbitmq.com/', u'product': u'RabbitMQ', u'copyright': u'Copyright (C) 2007-2012 VMware, Inc.', u'capabilities': {}, u'platform': u'Erlang/OTP', u'version': u'2.8.4'}, mechanisms: [u'PLAIN', u'AMQPLAIN'], locales: [u'en_US']
[2012-06-30 18:07:44,785: DEBUG/MainProcess] Open OK! known_hosts []
[2012-06-30 18:07:44,787: DEBUG/MainProcess] using channel_id: 1
[2012-06-30 18:07:44,789: DEBUG/MainProcess] Channel open
[2012-06-30 18:07:44,790: INFO/MainProcess] Scheduler: Sending due task tasks.output
[2012-06-30 18:07:44,794: DEBUG/MainProcess] Celerybeat: Synchronizing schedule...
[2012-06-30 18:07:44,838: DEBUG/MainProcess] tasks.output sent. id->53951ab0-022d-40a5-9f56-9a4a294294c7
[2012-06-30 18:07:44,838: DEBUG/MainProcess] Celerybeat: Waking up in 1.00 minute.

最佳答案

Celerybeat 本身只是简单地保持时间并将任务推送到适当的队列中以供其他人使用。

因此,启动一个 celeryd 进程监听你想要处理的队列:

$ celeryd <queuename> -l DEBUG

关于python - Celerybeat 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com