2

本番環境でセロリとセロリビートを実行しようとしています。現在の django アプリでは、コマンド「celery -A Gorgon worker」および「celery -A Gorgon Beat -l debug --max-interval=10」を使用してテストおよび実行できます。また、virtualenv を介して実行しています。また、タスク ブローカーとして redis を使用しています。

アプリ全体が gunicorn サーバー上で実行されています。しかし、プロセスをデーモン化しようとすると、111 接続エラーで失敗します。

https://github.com/celery/celery/tree/3.0/extra/generic-init.dから必要なスクリプトをディレクトリ /etc/init.d に追加しました

/etc/defaults 内のスクリプトについては、次のようになります。

私のcelerydスクリプトは次のとおりです

# Names of nodes to start
#   most will only start one node:

CELERYD_NODES="worker1"

#   but you can also start multiple and configure settings
#   for each in CELERYD_OPTS (see `celery multi --help` for examples).
#CELERYD_NODES="worker1 worker2 worker3"
# Absolute or relative path to the 'celery' command:
#CELERY_BIN="/usr/local/bin/celery"

CELERY_BIN="/home/ubuntu/sites/virtualenv/bin/celery"

# App instance to use
# comment out this line if you don't use an app

CELERY_APP="Gorgon"

# or fully qualified:
#CELERY_APP="proj.tasks:app"
# Where to chdir at start.

CELERYD_CHDIR="/home/ubuntu/sites/source"

# Extra command-line arguments to the worker

CELERYD_OPTS="--time-limit=300 --concurrency=8"

# %N will be replaced with the first part of the nodename.

CELERYD_LOG_FILE="/var/log/celery/%N.log"
CELERYD_PID_FILE="/var/run/celery/%N.pid"

# Workers should run as an unprivileged user.
#   You need to create this user manually (or you can choose
#   a user/group combination that already exists, e.g. nobody).
#CELERYD_USER="celery"
#CELERYD_GROUP="celery"
# If enabled pid and log directories will be created if missing,
# and owned by the userid/group configured.

CELERY_CREATE_DIRS=1

私のセロリビートスクリプトは

# Absolute or relative path to the 'celery' command:

CELERY_BIN="/home/ubuntu/sites/virtualenv/bin/celery"

#CELERY_BIN="/virtualenvs/def/bin/celery"
# App instance to use
# comment out this line if you don't use an app

CELERY_APP="Gorgon"

# or fully qualified:
#CELERY_APP="proj.tasks:app"
# Where to chdir at start.

CELERYBEAT_CHDIR="/home/ubuntu/sites/source"

# Extra arguments to celerybeat
#CELERYBEAT_OPTS="--schedule=/var/run/celery/celerybeat-schedule"

/home/ubuntu/sites/virtualenv の現在の仮想環境を使用して、セロリのセットアップをデーモンとして実行するにはどうすればよいですか

4

1 に答える 1

-1

デーモンでセロリを実行するには、スーパーバイザーを使用できます。このリンクは、セロリをデーモンモードで実行する方法を少し理解するのに役立つかもしれません. http://www.hiddentao.com/archives/2012/01/27/processing-long-running-django-tasks-using-celery-rabbitmq-supervisord-monit/

于 2015-04-27T10:30:24.520 に答える