5

分散タスクのためにdjango-celeryがRabbitMQと通信するdebianサーバー上にDjangoのインスタンスをセットアップしようとしています。

RabbitMQサーバーをセットアップすると、良好なステータスで応答しますが、celeryがRabbitMQに接続するとすぐに、エラーがスローされてシャットダウンします。セロリの開発インスタンスを開始しようとすると、次のようになります。

[2013-03-08 16:59:23,707: WARNING/MainProcess] celery@myserver ready.
[2013-03-08 16:59:23,725: INFO/MainProcess] consumer: Connected to amqp://celery_rabbit@127.0.0.1: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)

確認のために、RabbitMQが後でまだ実行されていることを確認できます。

# rabbitmqctl status
Status of node rabbit@myserver ...
[{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,[rabbit@myserver]}]},
 {running_nodes,[rabbit@myserver]}]
...done.

これは私が私のサイトを立ち上げるのを妨げる最後のことであり、私はすべてがっかりしているので、どんな助けでも大歓迎です!ありがとう。

4

2 に答える 2

6

昆布を 2.4.7 にダウングレードすると修正されます。rabbitmq-server は、AMQP 0-9-1 をサポートするほど新しいものではありません。

于 2013-03-09T01:46:03.343 に答える
1

Ubuntuでも同じ問題が発生しました。(おそらく Ubuntu のバージョンによっては) 同梱されている RabbitMQ パッケージが古くなっている可能性があります。そして、RabbitMQ インストール ガイドには、これが可能であると記載されています。したがって、Web サイトから .deb パッケージをインストールすることをお勧めします。

于 2013-03-10T09:28:08.360 に答える