Я использую Django и Celery для планирования задач.
tasks.py
@periodic_task(run_every=crontab(hour='00', minute='00', day_of_week="*"))
def hello_world():
print('hello world!)
В дополнение к ежедневному запуску функции, я должен иметь возможность вызывать ее вручную. Если пользователь нажимает кнопку во внешнем интерфейсе, он запускается. Я мог бы сделать:
@periodic_task(run_every=crontab(hour='00', minute='00', day_of_week="*"))
def hello_world():
print('hello world!)
@task()
def hello_world():
print('hello world!)
Но это идет вразрез с СУХОЙ. Кроме того, у меня может быть несколько функций с таким же сценарием. Мне нужно будет запускать его периодически, но также по запросу.
Я пробовал это:
def hello_world():
print('hello world!)
@periodic_task(run_every=crontab(hour='00', minute='00', day_of_week="*"))
hello_world()
@task
hello_world()
Но это не работает. Я получаю
неверный синтаксис
Мне не удалось найти этот сценарий в документации или других ответах на стеке. Они говорят о вызове функции из оболочки. Помощь будет оценена.
Спасибо!