2017-02-11 3 views
0

Я планирую повторять задачи для своего приложения Django, включив их в словарь CELERYBEAT_SCHEDULE в моем settings.py. Например:Периодические расписания задач, установленные через функции просмотра (приложение Django)

CELERYBEAT_SCHEDULE = { 
    'tasks.rank_photos': { 
     'task': 'tasks.rank_photos', 
     'schedule': timedelta(seconds=5*60), 
    }, 
    'tasks.trim_whose_online': { 
     'task': 'tasks.trim_whose_online', 
     'schedule': timedelta(seconds=10*60), 
    }, 
} 

Эти задачи периодически запускаются (на весь срок службы приложения).

Мне было интересно, есть ли способ для обычного пользователя моего приложения запустить периодическую задачу? То есть есть ли способ контролировать этот вид планирования от views.py? Если нет, почему бы и нет? И если да, иллюстративный пример будет замечательным. Заранее спасибо.

+0

Вы можете использовать пакет django-celery-beat (https://pypi.python.org/pypi/django_celery_beat). Он определяет несколько моделей (например, PeriodicTask), и это позволит вам планировать задачи в своих представлениях, просто используя эти модели для создания или редактирования периодических задач. Он упоминается в официальных документах (http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html). Существует также расширение django-celery-beat, которое хранит расписание в базе данных Django и представляет удобный интерфейс администратора для управления периодическими задачами во время выполнения. ' – mateuszb

+1

@mateuszb: спасибо за помощь. Пройдя через документы еще раз - пропустил это. Вы можете добавить его в качестве ответа, и я соглашусь с ним. –

ответ

1

Вы можете использовать django-celery-beat package. Он определяет несколько моделей (например, PeriodicTask), и это позволит вам планировать задачи в своих представлениях, просто используя эти модели для создания или редактирования периодических задач. Это упоминается в official docs.

Существует также расширение django-celery-beat, которое хранит расписание в базе данных Django и представляет удобный интерфейс администратора для управления периодическими задачами во время выполнения.

Смежные вопросы