7

スーパーバイザーを使用して花を始めるという課題があります。

私の開発環境の次のコマンドは、コンソールで機能します

celery --app=celery_conf.celeryapp flower --conf=flowerconfig

しかし、スーパーバイザーを使用するために本番環境に移行すると、あらゆる種類のエラーが発生します

/supervisor/conf.d/flower.conf

[program:flower]
command=/opt/apps/venv/my_app/bin/celery flower --app=celery_conf.celeryapp --conf=flowerconfig
directory=/opt/apps/my_app
user=www-data
autostart=true
autorestart=false
redirect_stderr=true
stderr_logfile=/var/log/celery/flower.err.log
stdout_logfile=/var/log/celery/flower.out.log

上記の構成では、エラーはありませんが、セロリが出力のようなヘルプを表示するだけです。渡された変数を認識しないようです。

 Type 'celery <command> --help' for help using a specific command.
 Usage: celery <command> [options]
 Show help screen and exit.
 Options:
   -A APP, --app=APP     app instance to use (e.g. module.attr_name)
   -b BROKER, --broker=BROKER
                         url to broker.  default is 'amqp://guest@localhost//'
   --loader=LOADER       name of custom loader class to use.
   etc..
   etc..
   etc...

一方スーパーバイザーは投げるINFO exited: flower (exit status 64; not expected)

githubcelery_beatの構成ファイルのサンプルを使用および使用している他のスーパーバイザーによって開始されたアプリがあり、それらは上記と同じディレクトリ パスで正常に動作しています。

flowerconfig は次のとおりです。

flowerconfig.py

# Broker settings
BROKER_URL = 'amqp://guest:guest@localhost:5672//'

# RabbitMQ management api
broker_api = 'http://guest:guest@localhost:15672/api/'

#Port
port = 5555

# Enable debug logging
logging = 'INFO'

解決:

まあ、本当の解決策ではないので、答えにはしていません。仮想環境に問題があることが判明しました。だから私は花を削除し、pip3.4をpython3.4のように使用して再度インストールしました

ただし、花がファイルを使用するには、スーパーバイザーのファイルにエントリflowerconfigを追加する必要があることに注意してください。そうしないと、花はデフォルト設定で起動します。director=/path/to/your/celery_config/folder//etc/supervisor/conf.d/flower.conf

/etc/supervisor/conf.d/flower.conf

; ==================================
;  Flower: For monitoring Celery
; ==================================
[program:flower]
command=/opt/apps/venv/my_app/bin/celery flower --app=celery_conf.celeryapp --conf=flowerconfig
directory=/opt/apps/my_app/celery_conf #this is key as my configuration file was in the `celery_conf` folder
user=www-data
autostart=true
autorestart=false
redirect_stderr=true
stderr_logfile=/var/log/celery/flower.err.log
stdout_logfile=/var/log/celery/flower.out.log

ありがとう。

4

1 に答える 1