2013-03-09 7 views
5

Próbuję skonfigurować instancję Django na serwerze debiana z django-selerem rozmawiającym z RabbitMQ dla zadań rozproszonych.Błąd krytyczny poprzez uruchomienie django-selera za pomocą RabbitMQ [Nieznana metoda AMQP (10, 60)]

Mogę skonfigurować serwer RabbitMQ, który zareaguje dobrym stanem, ale gdy tylko seler skontaktuje się z RabbitMQ, zgłasza błąd i wyłącza się. Oto jak to wygląda, gdy próbuję uruchomić instancję dev selera:

[2013-03-08 16:59:23,707: WARNING/MainProcess] [email protected] ready. 
[2013-03-08 16:59:23,725: INFO/MainProcess] consumer: Connected to amqp://[email protected]:5672//rabbit_vhost. 
[2013-03-08 16:59:23,734: ERROR/MainProcess] Unrecoverable error: AMQPError('Unknown AMQP method (10, 60)', None, None, None, '') 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.6/dist-packages/celery/worker/__init__.py", line 351, in start 
    component.start() 
    File "/usr/local/lib/python2.6/dist-packages/celery/worker/consumer.py", line 392, in start 
    self.reset_connection() 
    File "/usr/local/lib/python2.6/dist-packages/celery/worker/consumer.py", line 748, in reset_connection 
    self.reset_pidbox_node() 
    File "/usr/local/lib/python2.6/dist-packages/celery/worker/consumer.py", line 687, in reset_pidbox_node 
    callback=self.on_control, 
    File "/usr/local/lib/python2.6/dist-packages/kombu/pidbox.py", line 71, in listen 
    consumer.consume() 
    File "/usr/local/lib/python2.6/dist-packages/kombu/messaging.py", line 401, in consume 
    self._basic_consume(T, no_ack=no_ack, nowait=False) 
    File "/usr/local/lib/python2.6/dist-packages/kombu/messaging.py", line 522, in _basic_consume 
    no_ack=no_ack, nowait=nowait) 
    File "/usr/local/lib/python2.6/dist-packages/kombu/entity.py", line 571, in consume 
    nowait=nowait) 
    File "/usr/local/lib/python2.6/dist-packages/amqp/channel.py", line 1766, in basic_consume 
    (60, 21), # Channel.basic_consume_ok 
    File "/usr/local/lib/python2.6/dist-packages/amqp/abstract_channel.py", line 69, in wait 
    self.channel_id, allowed_methods) 
    File "/usr/local/lib/python2.6/dist-packages/amqp/connection.py", line 230, in _wait_method 
    self.wait() 
    File "/usr/local/lib/python2.6/dist-packages/amqp/abstract_channel.py", line 71, in wait 
    return self.dispatch_method(method_sig, args, content) 
    File "/usr/local/lib/python2.6/dist-packages/amqp/abstract_channel.py", line 85, in dispatch_method 
    raise AMQPError('Unknown AMQP method %r' % (method_sig,)) 
AMQPError: Unknown AMQP method (10, 60) 

Wystarczy, aby potwierdzić, mogę sprawdzić, czy RabbitMQ nadal działa potem:

# rabbitmqctl status 
Status of node [email protected] ... 
[{running_applications,[{rabbit,"RabbitMQ","1.8.1"}, 
         {mnesia,"MNESIA CXC 138 12","4.4.14"}, 
         {os_mon,"CPO CXC 138 46","2.2.5"}, 
         {sasl,"SASL CXC 138 11","2.1.9.2"}, 
         {stdlib,"ERTS CXC 138 10","1.17"}, 
         {kernel,"ERTS CXC 138 10","2.14"}]}, 
{nodes,[{disc,[[email protected]]}]}, 
{running_nodes,[[email protected]]}] 
...done. 

To jest ostatnia rzecz zapobiegania mnie od uruchomienia mojej strony i ma mnie wszystkich oszołomiony, więc każda pomoc będzie bardzo mile widziane! Dzięki.

Odpowiedz

6

Zmiana kombu na 2.4.7 naprawi to. Serwer rabbitmq nie jest wystarczająco nowy, aby obsługiwać AMQP 0-9-1.

+0

Masz rację, dzięki! Wygląda na to, że ci faceci mieli ten sam problem: [problem z githubem] (https://github.com/celery/django-celery/issues/217) – Lou

1

Uruchomiłem z tym samym problemem w Ubuntu. Wygląda na to, że (prawdopodobnie w zależności od wersji Ubuntu) dołączone pakiety RabbitMQ mogą być przestarzałe. I RabbitMQ installation guide stwierdza, że ​​jest to całkiem możliwe. Dlatego zalecają zainstalowanie pakietu .deb ze swojej strony internetowej.