Мне нужен минимальный пример для выполнения периодических задач (запускать какую-то функцию через каждые 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"
Когда я запускаю работников из сельдерея, он показывает задачи (приведенные ниже), но не возвращает никаких значений (в терминале или цветке).
[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()
из оболочки, он успешно работает, а также отображает информацию о задаче в цветке