首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Celerybeat没有像预期的那样工作

Celerybeat没有像预期的那样工作
EN

Stack Overflow用户
提问于 2012-07-01 00:10:09
回答 1查看 3K关注 0票数 4

我正在与瓶子建立一些项目,我需要它来定期运行某些预定的行动。

我决定使用rabbitmq + celery,因为这似乎是最健壮和完整的解决方案,可以程序化地管理排定的工作。

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

我是不是遗漏了什么?

以下是$celerybeat -l调试的输出:

代码语言:javascript
复制
[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.
EN

回答 1

Stack Overflow用户

发布于 2013-09-10 05:52:34

Celerybeat本身只是保持时间,并将任务放到适当的队列中,供其他人使用。

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

代码语言:javascript
复制
$ celeryd <queuename> -l DEBUG
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11275606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档