1
私たちはフラスコでセロリを使用しています。私たちのさまざまなタスクには多くのキューがあり、スーパーバイザを使用してキューを実行します。私たちはcloudamqp ブローカーを使用しています。セロリの各ノードに名前を付けるには
例のスーパーバイザ構成は以下のようなものです:
[program:my-queue]
command=/home/ubuntu/opt/proect/venv/bin/celery -A async_runner worker -Q my_queue --loglevel=INFO --without-gossip --without-mingle --autoscale=1,1 -c 1
environment=PYTHONPATH=/home/ubuntu/opt/project/,PRODUCTION_ENVIRONMENT=true
directory=/home/ubuntu/opt/project/app
process_name = %(program_name)s_%(process_num)02d
user=ubuntu
numprocs=2
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=998
私たちは、次の取得エラーとキューだけを停止します。
[2017-04-06 12:43:06,759: WARNING/MainProcess] /home/ubuntu/opt/project/venv/local/lib/python2.7/site-packages/kombu/pidbox.py:75: UserWarning: A node named [email protected] is already using this process mailbox!
Maybe you forgot to shutdown the other node or did not do so properly?
Or if you meant to start multiple nodes on the same host please make sure
you give each node a unique node name!
warnings.warn(W_PIDBOX_IN_USE.format(node=self))
質問:各ノードに名前を付けるにはどうすればよいですか?
celery -A async_runner status
を実行すると、5ノードのオンラインメッセージが表示されます。
[email protected]_value_here-: OK
[email protected]_value_here-: OK
[email protected]_value_here-: OK
[email protected]_value_here-: OK
[email protected]_value_here-: OK
5 nodes online.
ない、これは私の質問に答える場合、私は理解してください:
そして最後に
celery_worker.sh
は次のようなものが含まれています。 – Kishan@soupboy申し訳ありませんが、 '-n'は必要と思われる作業者の名前を設定することを明確にしていたはずです。 –
@soupboy実際には、同じキューに対して複数のワーカーを実行していることがわかります。そのため、ワーカー名にも 'process_num'を含めることができます。 –