#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. Хорошо, да. Лучше подумайте об этом.