Django, Celery - period_task в случайное время - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь запустить задачу сельдерея через произвольные интервалы. Как я могу сделать это самым простым способом?

Я пытался выполнить задачу таким образом, но она вызывает мою случайную функцию только один раз. И тогда он всегда выступает с ранее случайным интервалом времени. 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 минут, в течение которого будет выполняться задача сельдерея? Может быть, есть какая-то встроенная функция, которую я пропустил в документации? Это кажется довольно распространенной проблемой. Любая помощь будет оценена.

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