【问题标题】:Celeryd Worker stops processing tasksCelery Worker 停止处理任务
【发布时间】:2012-06-06 23:35:34
【问题描述】:

我有一个 celeryd 和两个工人一起运行,看着他们,我看到他们每个人接受 4 个任务,处理它们,然后停止处理任务。 (请注意,这些任务运行时间很长,最多需要 2 分钟才能处理)。

celeryctl 提供以下信息:

django@server: ./manage.py celeryctl inspect active
<- active
DEBUG 2012-06-01 12:51:11,330 amqplib 661 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.2'}, mechanisms: [u'PLAIN', u'AMQPLAIN'], locales: [u'en_US']
DEBUG 2012-06-01 12:51:11,331 amqplib 507 Open OK! known_hosts []
DEBUG 2012-06-01 12:51:11,331 amqplib 70 using channel_id: 1
DEBUG 2012-06-01 12:51:11,332 amqplib 484 Channel open
-> eso-dev: OK
    - empty -

django@server:  ./manage.py celeryctl inspect scheduled
<- scheduled
DEBUG 2012-06-01 12:52:07,107 amqplib 661 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.2'}, mechanisms: [u'PLAIN', u'AMQPLAIN'], locales: [u'en_US']
DEBUG 2012-06-01 12:52:07,108 amqplib 507 Open OK! known_hosts []
DEBUG 2012-06-01 12:52:07,108 amqplib 70 using channel_id: 1
DEBUG 2012-06-01 12:52:07,109 amqplib 484 Channel open
-> eso-dev: OK
    - empty -

django@server: ./manage.py celeryctl inspect registered
<- registered
DEBUG 2012-06-01 12:52:20,567 amqplib 661 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.2'}, mechanisms: [u'PLAIN', u'AMQPLAIN'], locales: [u'en_US']
DEBUG 2012-06-01 12:52:20,568 amqplib 507 Open OK! known_hosts []
DEBUG 2012-06-01 12:52:20,568 amqplib 70 using channel_id: 1
DEBUG 2012-06-01 12:52:20,569 amqplib 484 Channel open
-> eso-dev: OK
    * celery.backend_cleanup
    * celery.chord
    * celery.chord_unlock
    *
celery_haystack.tasks.CeleryHaystackSignalHandler
    *
celery_haystack.tasks.CeleryHaystackUpdateIndex
    * convert.tasks.create_pdf
    * convert.tasks.create_pngs

此外,每次发生这种情况时,最后要打印到日志的内容是:

[2012-06-01 12:17:53,777: INFO/MainProcess] Task convert.tasks.create_pdf[319984de-5bc4-47fc-891f-273d827d625f] retry: None
None
[2012-06-01 12:17:54,327: INFO/MainProcess] Task convert.tasks.create_pdf[8a89f3c1-e991-487e-a2db-a57d23bae17f] retry: None
None

在打印之前,这些任务也碰巧失败了,在我的代码中,我调用的只是 :

except HTTPError, e:
    statsd.incr('A.stat')
    log.warn('Woops: %s', e)
    create_pdf.retry()

如果我杀死 celeryd(^C,它立即死亡,无需等待任务)并再次启动它,它会继续执行,就像其他一些任务没有发生任何事情一样,然后再次死亡(我认为它总是在 create_pdf任务,但日志显示此任务失败并重试没有问题)

【问题讨论】:

    标签: django celery celeryd celery-task


    【解决方案1】:

    这是一个已知的 celery 错误,已在 v3.0 中修复。 (Issue 707)

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 2023-03-07
      • 2014-04-17
      • 1970-01-01
      • 2021-01-24
      相关资源
      最近更新 更多