2012-07-13 14 views
6

Recentemente ho aggiornato a Celery 3.0.1 da 2.3.0 e tutte le attività funzionano correttamente. Purtroppo. Ricevo un'eccezione di "Framing Error" piuttosto frequente. Sono anche supervisore in esecuzione per riavviare i thread ma poiché questi non vengono mai realmente uccisi, il supervisore non ha modo di sapere che il sedano deve essere riavviato. Qualcuno ha visto questo prima?Errori di framing in Celery 3.0.1

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 
+0

non sono un esperto e questo è indovinare dalla analisi dello stack, ma, sei sicuro che i tuoi produttori compito sta scrivendo messaggi in AMQP nella versione corretta? Forse hai bisogno di aggiornare la versione del produttore, svuotare vecchi messaggi o qualcosa del genere. – pkoch

+0

Attualmente sto affrontando lo stesso problema. Potrebbe essere una lib di AMQP diversa sull'operatore e sul mittente dell'attività? –

+0

Hey Dan, hai risolto questo problema? – antonlitvinenko

risposta

4

Mentre io non sono sicuro perché questo accade in realtà, il passaggio amqplib-librabbitmq mi ha aiutato a superare questa difficoltà.

non ho cambiato nulla nella configurazione, basta:

pip uninstall amqplib 
pip install librabbitmq 

e lavoratori sedano rinnovate.

avuto questa forma idea https://github.com/celery/celery/issues/922

+1

questo ha risolto lo stesso problema per me su Heroku utilizzando CloudAMQP – alan

+0

era in esecuzione in questo errore con Kombu (la libreria che si trova sotto Celery) e passando a librabbitmq da amqplib funzionava –