2017-01-05 7 views
0

シナリオでのエラー「未登録のタスクを受信した」:2つのアプリケーションは:労働者の1つの

  • 同じサーバー上で実行されているセロリのバックグラウンドタスクを持つ2つの無関係なWebアプリケーションを。
  • 1つのRabbitMQインスタンス
  • 各Webアプリケーションには、独自のvirtualenv(セロリを含む)があります。両方のvirtualenvsで同じセロリのバージョン。

次のコマンドラインを使用して、アプリケーションごとにワーカープロセスとビートプロセスを開始します。

celery -A firstapp.tasks worker 
celery -A firstapp.tasks beat 
celery -A secondapp.tasks worker --hostname foobar 
celery -A secondapp.tasks beat 

今、すべてが正常に動作するようだが、secondappのワーカープロセスで、私は次のエラーを取得する:

Received unregistered task of type 'firstapp.tasks.do_something' 

は2セロリの相互を分離する方法はありますか?

私はCeleryバージョン3.1.16、BTWを使用しています。

答えて

0

私はRabbitMQ仮想ホストを作成し、それを使用するように2番目のアプリケーションを設定することで問題を解決したと思います。

sudo rabbitmqctl add_vhost /secondapp 
sudo rabbitmqctl set_permissions -p /secondapp guest ".*" ".*" ".*" 

をした後、第2のアプリケーションのためのコマンドライン変更:

バーチャルホスト(とセット権限)を作成

celery -A secondapp.tasks -b amqp://localhost//secondapp worker 
celery -A secondapp.tasks -b amqp://localhost//secondapp beat 
関連する問題