私はセロリを学んでいて、構成をテストするプロジェクトを作成しました。最新のドキュメントに従って、celery==4.0.0
とDjango-celery-beat==1.0.1
をインストールしました。
Drf_project(manage.pyを使用したメインプロジェクトディレクトリ)/drf_project/celery.py
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/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。py内
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
User_managementアプリ(drf_project/user_mangement /)に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'))
セロリワーカーと私のDjangoプロジェクト開発サーバーを異なる端末で実行すると:
celery -A drf_project worker -l info
そして
python manage.py runserver
セロリログで自分のタスクを次のように確認できます。
[tasks]
. user_management.tasks.print_test
しかし、それは実行されていません。また、エラーは発生していません。 SO私が間違っていることは何ですか?私はセロリの公式文書に従いました。
定期的なタスクを実行するには、2つのサービスを実行する必要があります:セロリビートとセロリワーカー。
詳細については、 以下 ページの下部をご覧ください。