web-dev-qa-db-ja.com

セロリの定期的なタスクが実行されていない

私はセロリを学んでいて、構成をテストするプロジェクトを作成しました。最新のドキュメントに従って、celery==4.0.0Django-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私が間違っていることは何ですか?私はセロリの公式文書に従いました。

10
Manish Gupta

定期的なタスクを実行するには、2つのサービスを実行する必要があります:セロリビートセロリワーカー

詳細については、 以下 ページの下部をご覧ください。

8
M. Soltysik