セロリの簡単な例を本番サーバーにデプロイしようとしています。セロリをデーモンとして実行する方法について、セロリのWebサイトのチュートリアルに従っていますhttp://docs.celeryproject.org/en/latest/tutorials/daemonizing.html #daemonizing 、そして私は/ etc / default/celerydに設定ファイルを取得しました
1#開始するノードの名前 2#ここに単一のノードがあります 3 CELERYD_NODES = "w1" 4#または3つのノードを持つことができます: 5#CELERYD_NODES = "w1 w2 w3" 6 7#開始時にchdirする場所。 8 CELERYD_CHDIR = "/ home / audiwime / cidec_sw" 9 10#環境からのPythonインタープリター。 11 ENV_PYTHON = "/ usr / bin / python26" 12 13#「manage.pyceleryd_multi」の呼び出し方法 14 CELERYD_MULTI = "$ ENV_PYTHON $ CELERYD_CHDIR / manage.py celeryd_multi" 15 16 ##「manage.pyceleryctl」の呼び出し方法 17 CELERYCTL = "$ ENV_PYTHON $ CELERYD_CHDIR / manage.py celeryctl" 18 19#celerydへの追加の引数 20 CELERYD_OPTS = "-time-limit = 300 --concurrency = 8" 21 22#セロリ構成モジュールの名前。 23 CELERY_CONFIG_MODULE = "celeryconfig" 24 25#%nはノード名に置き換えられます。 26 CELERYD_LOG_FILE = "/ var / log / celery /%n.log" 27 CELERYD_PID_FILE = "/ var / run / celery /%n.pid" 28 29#ワーカーは非特権ユーザーとして実行する必要があります。 30 CELERYD_USER = "audiwime" 31 CELERYD_GROUP = "audiwime" 32 33 export DJANGO_SETTINGS_MODULE = "cidec_sw.settings"
しかし、私が実行した場合
セロリの状態
ターミナルで、私はこの応答を得ました:
エラー:時間の制約内に応答したノードがありません
https://github.com/celery/celery/tree/3.0/extra/generic-init.d/で提供されているcelerydスクリプトを使用してceleryを再起動できます
/etc/init.d/celeryd restart celeryd-multi v3.0.12(Chiastic Slide) > w1.one.cloudwime.com:ダウン >ノードw1.one.cloudwime.comを再起動します:OK
実行できpython26 manage.py celeryd -l info
、djangoのタスクは正常に実行されますが、デーモンにその作業を任せても結果は得られず、/ var / log / celery/ w1.logにエラーが発生することもありません。
私はこれをしたので私のタスクが登録されたことを知っています
from celery import current_app
def call_celery_delay(request):
print current_app.tasks
run.delay(request.GET['age'])
return HttpResponse(content="celery task set",content_type="text/html")
自分のタスクが表示されている辞書を取得します
{'celery.chain': <@task: celery.chain>, 'celery.chunks': <@task: celery.chunks>, 'celery.chord': <@task: celery.chord>, 'tasks.add2': <@task: tasks.add2>, 'celery.chord_unlock': <@task: celery.chord_unlock>, **'tareas.tasks.run': <@task: tareas.tasks.run>**, 'tareas.tasks.add': <@task: tareas.tasks.add>, 'tareas.tasks.test_two_minute': <@task: tareas.tasks.test_two_minute>, 'celery.backend_cleanup': <@task: celery.backend_cleanup>, 'celery.map': <@task: celery.map>, 'celery.group': <@task: celery.group>, 'tareas.tasks.test_one_minute': <@task: tareas.tasks.test_one_minute>, 'celery.starmap': <@task: celery.starmap>}
しかし、それ以外に何も得られず、タスクの結果も、ログのエラーも、何も得られません。何が間違っている可能性がありますか?