Мне нужен минимальный пример для выполнения периодической задачи (запускать какую-то функцию каждые 5 минут или запускать что-то в 12:00:00 и т. д.).
В моем myapp/tasks.py
у меня есть,
from celery.task.schedules import crontab
from celery.decorators import periodic_task
from celery import task
@periodic_task(run_every=(crontab(hour="*", minute=1)), name="run_every_1_minutes", ignore_result=True)
def return_5():
return 5
@task
def test():
return "test"
Когда я запускаю celery worker, он показывает задачи (приведенные ниже), но не возвращает никаких значений (ни в терминале, ни в цветке).
[tasks]
. mathematica.core.tasks.test
. run_every_1_minutes
Пожалуйста, предоставьте минимальный пример или подсказки для достижения желаемых результатов.
Предыстория:
У меня есть config/celery.py
, который содержит следующее:
import os
from celery import Celery
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.local")
app = Celery('config')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
И в моем config/__init__.py
у меня есть
from .celery import app as celery_app
__all__ = ['celery_app']
Я добавил функцию, как показано ниже в myapp/tasks.py
from celery import task
@task
def test():
return "test"
Когда я запускаю test.delay()
из оболочки, он работает успешно, а также отображает информацию о задаче в виде цветка.
celery -A proj worker -B
? - person neverwalkaloner   schedule 25.05.2018celery -A config worker -l info
- person inquilabee   schedule 25.05.2018