Celery 3.0.1中的框架错误

Dan*_*din 6 python django rabbitmq celery

我最近从2.3.0升级到Celery 3.0.1并且所有任务都运行正常.不幸.我经常遇到"Framing Error"异常.我也在运行主管重新启动线程,但由于这些从未真正被杀死,主管无法知道芹菜需要重新启动.谁看过这个吗?

2012-07-13 18:53:59,004: ERROR/MainProcess] Unrecoverable error: Exception('Framing Error, received 0x00 while expecting 0xce',)
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/__init__.py", line 350, in start
    component.start()
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer.py", line 360, in start
    self.consume_messages()
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer.py", line 445, in consume_messages
    drain_nowait()
  File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 175, in drain_nowait
    self.drain_events(timeout=0)
  File "/usr/local/lib/python2.7/dist-packages/kombu/connection.py", line 171, in drain_events
    return self.transport.drain_events(self.connection, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/amqplib.py", line 262, in drain_events
    return connection.drain_events(**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/amqplib.py", line 97, in drain_events
    chanmap, None, timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/amqplib.py", line 155, in     _wait_multiple
    channel, method_sig, args, content = read_timeout(timeout)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/amqplib.py", line 129, in read_timeout
    return self.method_reader.read_method()
  File "/usr/local/lib/python2.7/dist-packages/amqplib/client_0_8/method_framing.py", line 221, in read_method
    raise m
Exception: Framing Error, received 0x00 while expecting 0xce
Run Code Online (Sandbox Code Playgroud)

ant*_*nko 5

虽然我不知道为什么,这实际发生,在切换amqpliblibrabbitmq帮助我克服这个困难.

我没有改变任何配置,只是:

pip uninstall amqplib
pip install librabbitmq
Run Code Online (Sandbox Code Playgroud)

并重新启动芹菜工人.

https://github.com/celery/celery/issues/922获得了这个想法

  • 这在Heroku上使用CloudAMQP为我解决了同样的问题 (2认同)