2017-03-27 8 views
0

.confファイルにセロリは、分離された

を働いていない
[program:task1] 
    directory=/home/ubuntu/proj1 
    command=/usr/bin/python3 /usr/local/bin/celery -A proj1 worker -l info --concurrency=10 -n [email protected]%%h 
    user=ubuntu 
    numprocs=1 
    stdout_logfile=/var/log/proj1_celeryd.log 
    stderr_logfile=/var/log/proj1_celeryd.log 
    autostart=true 
    autorestart=true 
    startsecs=10 
    stopwaitsecs=600 
    priority=998 

[program:task2] 
    directory=/home/ubuntu/proj2/ 
    command=/usr/bin/python3 /usr/local/bin/celery -A proj2 worker -l info --concurrency=10 -n [email protected]%%h 
    user=ubuntu 
    numprocs=1 
    stdout_logfile=/var/log/proj2_celeryd.log 
    stderr_logfile=/var/log/proj2_celeryd.log 
    autostart=true 
    autorestart=true 
    startsecs=10 
    stopwaitsecs=600 
    priority=998 

[group:celeryworkers] 
programs=task1,task2 

proj1_workerとproj2_workerは孤立取得されていません。 まず、proj2_workerという名前でも常にproj1_workerが呼び出されます

どこが間違っているのか分かりません。親切にお手伝いします。

は、私は本当にあなたがプロジェクトごとにvirtualenvを使用することをお勧めしますすべての

+0

どのブローカーを使用しますか? RabbitMQ、Redis、...? – illagrenan

+0

RabbitMQブローカー – Rahul

答えて

1

まず事前にありがとうございます。 2つの別々のvirtualenvを作成します(独自の場所を指定できます)。https://docs.python.org/3/library/venv.htmlを参照してください。

python3 -m venv /home/ubuntu/virtualenvs/proj1 
python3 -m venv /home/ubuntu/virtualenvs/proj2 

はvirtualenvのをアクティブにして、セロリをインストールします。

source /home/ubuntu/virtualenvs/proj1/bin/activate 
pip install --upgrade celery 

source /home/ubuntu/virtualenvs/proj2/bin/activate 
pip install --upgrade celery 

上司構成は、次のようになります。

[program:task1] 
    directory=/home/ubuntu/proj1 
    command=/home/ubuntu/virtualenvs/proj1/bin/celery worker -A proj1 -l info --concurrency=10 -n [email protected]%%h 
    # ... 

[program:task2] 
    directory=/home/ubuntu/proj2 
    command=/home/ubuntu/virtualenvs/proj1/bin/celery worker -A proj2 -l info --concurrency=10 -n [email protected]%%h 
    # ... 

次に、あなたのプロジェクトのための2つの別々の仮想ホストの作成:

rabbitmqctl add_user proj_1 <PASSWORD> 
rabbitmqctl add_vhost proj_1_vhost 
rabbitmqctl set_permissions -p proj_1_vhost proj_1 ".*" ".*" ".*" 

rabbitmqctl add_user proj_2 <PASSWORD> 
rabbitmqctl add_vhost proj_2_vhost 
rabbitmqctl set_permissions -p proj_2_vhost proj_2 ".*" ".*" ".*" 

最後に、新しく作成された仮想ホストを使用するセロリの設定を変更します。Running multiple instances of celery on the same server:ウサギのバーチャルホストに関する詳細情報については

app = Celery('proj1_celery_app') 
app.conf.update(
    # ... 
    broker_url='amqp://proj1:<PASSWORD>@localhost:5672/proj_1_vhost' 
    # ... 
) 

app = Celery('proj2_celery_app') 
app.conf.update(
    # ... 
    broker_url='amqp://proj2:<PASSWORD>@localhost:5672/proj_2_vhost' 
    # ... 
) 

をこのSO記事を参照してください。

+0

ご回答ありがとうございました。 – Rahul

関連する問題