セロリを学んでいて、設定をテストするプロジェクトを作成しました。私はcelery==4.0.0
とdjango-celery-beat==1.0.1
をインストールしました。 drf_projectでセロリの定期的なタスクが実行されていません
(manage.pyメインプロジェクトディレクトリ)がdrf_project/drf_project/settings.pyで
INSTALLED_APPS += ('django_celery_beat',)
CELERYBEAT_SCHEDULE = {
"test_1": {
"task": "tasks.print_test",
"schedule": timedelta(seconds=2),
},
}
drf_project/drf_project/INITで
from __future__ import absolute_import, unicode_literals
from celery import Celery
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'drf_project.settings')
app = Celery('drf_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
を/drf_project/celery.py .py
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
私のuser_manageme NTアプリ(drf_project/user_mangement /)iをセロリの労働者と異なる端末での私のDjangoプロジェクトdevのサーバーを実行したとき、私はtasks.py
from celery import Celery
from time import strftime
app = Celery()
@app.task
def print_test():
print strftime('%Y-%m-%d %H:%M:%S')
with open('abc.txt', 'ab+') as test_file:
test_file.writeline(strftime('%Y-%m-%d %H:%M:%S'))
を追加しました:
celery -A drf_project worker -l info
と
python manage.py runserver
[tasks]
. user_management.tasks.print_test
:
私のようなセロリログに自分のタスクを見ることができます
しかし、実行されていません。また、私は何の誤りもありません。だから間違ってやっているの?私はセロリの公式文書に従った。
私は 'セロリの-A drf_projectのbeat'によってビートサービスを開始しました。しかし、まだタスクが実行されていないと私はどこでもdjangoサーバーとセロリのログの種類を参照してくださいすることはできません。 –
調べるまでに数日かかりました。ビートは任務が成立したときに仕事を送るだけです。これらのタスクはキューに入れられています。だから、少なくとも1人の作業者を起用して、それらの作業を選んで実行する必要があります。 –
@DatTTチップのおかげで。 –