Я пытаюсь запустить задачу сельдерея через произвольные интервалы. Как я могу сделать это самым простым способом?
Я пытался выполнить задачу таким образом, но она вызывает мою случайную функцию только один раз. И тогда он всегда выступает с ранее случайным интервалом времени. tasks.py
from celery.task.schedules import crontab
from celery.decorators import periodic_task
import random
a = random.randint(1, 5)
@periodic_task(run_every=(crontab(minute='*/%s'%a)))
def get_all_weather_data():
print('This is my random number %s'%a)
Поэтому я изменил, что новая случайная функция будет вызываться каждый раз. Мне кажется, что это работает хорошо, но не очень эффективно.
def random_function():
a = random.randint(1, 5)
return a
@periodic_task(run_every=(crontab(minute='*/%s'%random_function())))
def get_all_weather_data():
print('This is my random function')
Кто-нибудь знает лучший способ вызвать случайный интервал от 1 до 5 минут, в течение которого будет выполняться задача сельдерея? Может быть, есть какая-то встроенная функция, которую я пропустил в документации? Это кажется довольно распространенной проблемой. Любая помощь будет оценена.