Я хочу запустить программу, которая запускает функцию каждые 4 часа. Каков наименее затратный способ сделать это?
Планирование задачи на питоне
Ответы (3)
Самый простой способ, о котором я могу думать (в python, поскольку сообщение помечено python):
import time
while True:
do_task()
time.sleep(4 * 60 * 60) # 4 hours * 60 minutes * 60 seconds
person
rossipedia
schedule
17.05.2010
Хорошо, это работает очень хорошо, однако меня беспокоит используемая мощность процессора, или это в значительной степени доказательство эффективности?
- person Asaf; 17.05.2010
доказательство эффективности? Что это значит? Как вы думаете, он использует процессор во время сна?
- person S.Lott; 18.05.2010
Можно с уверенностью сказать, что это просто усыпляет процесс. Практически нулевое использование процессора, пока он не проснется.
- person rossipedia; 18.05.2010
time.sleep() не является точным. Вы должны использовать time.sleep() в повторяющихся интервалах через цикл, чтобы выполнить проверку, соответствует ли прошедшее время ожидаемому времени. Вы можете использовать time.time(), чтобы получить текущее время, добавить к нему разницу, а затем использовать time.sleep() в цикле, чтобы увидеть, является ли time.time() = ожидаемому времени. Это не предложение для планирования, а простое решение для простых задержек, основанных на времени. На 4 часа
expected_time = time.time() + (4 * 60 * 60)
.
- person jetole; 04.08.2019
Вы можете использовать sched
модуль
Вот документы
https://docs.python.org/3.4/library/sched.html
person
Community
schedule
08.07.2014
Используйте встроенный поток таймера:
from threading import Timer
def function_to_be_scheduled():
"""Your CODE HERE"""
interval = 4 * 60 * 60 #interval (4hours)
Timer(interval, function_to_be_scheduled).start()
person
liuroot
schedule
05.06.2012
Разве
function_to_be_scheduled
не будет запускаться только один раз? И не повторять каждые 4 часа.
- person k0pernikus; 21.02.2013
cron
в Linux илиat
в Windows? - person S.Lott   schedule 17.05.2010