Как добавить компонент случайности в расписание

#python #random #jobs #schedule

Вопрос:

Я пытаюсь запланировать выполнение задания в среднем каждые 3 минуты с компонентом случайности между /- 30 секундами. Таким образом, следующее задание выполняется где — то между 2 минутами 30 секунд-3 минутами 30 секунд спустя.

Этот код прекрасно работает ровно 3 минуты, но я не могу придумать, как ввести 30 секунд случайности:

 import schedule
def job:
   print('hi')

schedule.every(3).minutes.do(job)
 

Комментарии:

1. вы можете обратиться к документам python для import random . Python Случайный

2. и как бы я вставил его в код?

3. Вы имели в виду: schedule.every(150 random.randint(0 ,60)).seconds.do(job) ?

4. используйте случайное значение от 0 до 60 секунд и от 0 до 2,5 минут. @quamrana Вы должны подтолкнуть его к ответам.

5. «и как бы я вставил это в код?» Переполнение стека-это не служба написания кода.

Ответ №1:

Вам нужно найти random модуль, который поставляется с python.

 import schedule
import random

def job():
   print('hi')

two_mins_30 = 2 * 60   30
schedule.every(two_mins_30   random.randint(0, 60)).seconds.do(job)
 

Этот расчет таков: две минуты, 30 плюс еще одна минута наугад.

Обновить:

Оказывается, вы можете сделать это напрямую schedule , потому Job что у класса есть to() метод:

 schedule.every(two_mins_30).to(two_mins_30   60).seconds.do(job)
 

Комментарии:

1. Но разве это не будет просто случайным числом один раз в начале, так что оно всегда будет составлять 150 секунд , скажем, 26 секунд, и делать это весь день?

2. Хорошо, да. Лучше подумайте об этом.