Это продолжение для another question, к которому у меня теперь есть решение, но реализация, похоже, не ведет себя правильно по несвязанным причинам.Python: threading.timer не соблюдает интервал
У меня есть следующий код:
import time
import datetime
import threading
def scheduled_function(cycle):
cycle += 1
print "Cycle " + str(cycle) + " complete."
print "Next cycle at " + (datetime.datetime.now() + datetime.timedelta(minutes=5)).strftime("%l:%M%p")
threading.Timer(300, scheduled_function(cycle)).start() # New cycle every 5 mins
return
scheduled_function(1)
while(True):
command = raw_input()
print command
В общем, это, кажется, сделать то, что я хочу, - что позволяет пользователю вводить команды в то время как в фоновом режиме, в то время как функция периодически называют делать какой-то регулярной деятельности , Однако интервал (300 в этом случае, который должен равняться 5 минутам), кажется, ничего не делает, и программа достигает максимальной глубины рекурсии в течение секунды или около того. (Макс. Рекурсия не является проблемой для реального скрипта, так как она, скорее всего, не будет работать более нескольких часов за раз).
Как я использую threading.Timer ошибочно?
Ах, конечно! Спасибо! – DTR