@albertalexandrov

Как организовать периодические задания в многопользовательском приложении?

Всем привет!)

Прошу подсказать, как реализовать возможность создавать задания в многопользовательском приложении.

В разных туториалах часто приводят примеры, где есть файл tasks.py, в котором прописаны задания. Например:

from celery.task.schedules import crontab
from celery.decorators import periodic_task

@periodic_task(run_every=(crontab(days='*/1')), name="wake_me_up", ignore_result=True)
def wake_me_up(alarm_melody):
    run_alarm_clock(alarm_melody)


Мне же нужно, чтобы пользователи могли сами создавать задания с необходимой им периодичностью. К примеру, чтобы пользователь А мог установить параметр days=1, пользователь B - days=2 и тд. То есть чтобы задания создавались на лету.

Пока на ум приходит следующее:

periodicity = 1
periodic_task(run_every=(crontab(days=f'*/{periodicity}')), name="wake_me_up", ignore_result=True)(wake_me_up)(alarm_melody)
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
@tumbler
бекенд-разработчик на python
Декораторы работают в момент импорта, расписание по пользователям лучше в БД хранить:

https://django-celery-beat.readthedocs.io/en/latest/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
TTM Talents Москва
от 150 000 до 230 000 руб.
Orange Rockets Тюмень
от 60 000 до 120 000 руб.
22 апр. 2019, в 15:05
20000 руб./за проект
22 апр. 2019, в 14:54
7000 руб./за проект
22 апр. 2019, в 14:43
150000 руб./за проект