6

サイトのバックエンドでタスクをキューに入れるために celery-django を使用しています。「low」と「high」という名前の 2 つのキューと、2 つのワーカー W1 と W2 を持つセットアップを作成しようとしています。次の方法でキューからタスクを消費するようにします。

W1 <-- 低、高

W2 <-- 高

通常はこのようにできます。

ターミナル 1 を開き、$ を入力しますcelery worker -n W1 -Q low,high

ターミナル 2 を開き、$ を入力しますcelery worker -n W2 -Q high

ただし、 celeryd daemonを介して同じことをしようとしています。

リンクに記載されている手順に従っています: http://celery.readthedocs.org/en/latest/tutorials/daemonizing.html#example-configuration しかし、利用可能なオプションは要件を満たすのに十分ではないようです。

それを可能にする可能性のある、私が知らないいくつかの設定を手伝ってください。本当に必要な場合を除き、複数のデーモンを実行したり、supervisord などの追加ツールを使用したりしないことをお勧めします (これについてもアドバイスをいただけないでしょうか)。

4

2 に答える 2

11

Celery リファレンスCELERYD_OPTSの例と同様の -Q パラメータを渡すオプションを使用できます。

# Advanced example starting 10 workers in the background:
#   * Three of the workers processes the images and video queue
#   * Two of the workers processes the data queue with loglevel DEBUG
#   * the rest processes the default' queue.
$ celery multi start 10 -l INFO -Q:1-3 images,video -Q:4,5 data
    -Q default -L:4,5 DEBUG

# You can show the commands necessary to start the workers with
# the 'show' command:
$ celery multi show 10 -l INFO -Q:1-3 images,video -Q:4,5 data
    -Q default -L:4,5 DEBUG
于 2014-04-15T20:03:36.383 に答える
4

CELERY_NODES で複数のノードを指定し、ノード名を CELERYD_OPTS 引数に渡すことができます。次に例を示します。

CELERY_NODES="W1 W2"
CELERYD_OPTS="-Q:W1 low,high -Q:W2 high"
于 2016-05-26T20:38:25.457 に答える