Django Celery периодическая задача в определенное время - PullRequest
0 голосов
/ 01 июня 2018

Я использую celery==4.1.1 в моем проекте.В моем settings.py у меня есть следующее:

from celery.schedules import crontab

CELERY_BROKER_URL = "redis://127.0.0.1:6379/1"
CELERY_TIMEZONE = 'Asia/Kolkata'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_RESULT_BACKEND = "redis://127.0.0.1:6379/1"


CELERY_BEAT_SCHEDULE = {
    'task-number-one': {
        'task': 'mathematica.core.tasks.another_test',
        'schedule': crontab(minute=45, hour=00)
    },
    'task-number-two': {
        'task': 'mathematica.core.tasks.test',
        'schedule': crontab(hour='*/1')
    }
}

Вторая задача, упомянутая в CELERY_BEAT_SCHEDULE, работает отлично.Однако первая задача mathematica.core.tasks.another_test, представляющая собой простую функцию, возвращающую строку, не выполняется в указанное время, 00:45 (45 minutes past midnight).Я пробовал несколько способов запускать функцию в определенное время каждый день, но не смог достичь того же.

Пожалуйста, предложите способы / советы для достижения тех же результатов.

1 Ответ

0 голосов
/ 27 июня 2018
'automatic_daily_report': {
            'task': 'tasks.daily_reports',
            'schedule': crontab(hour=0, minute=0),
            'args': None
        }


@shared_task()
def daily_reports():
    print("Mid- Night")

Вышеупомянутый код работал для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...