Непонятная работа time.sleep()
Этот код проверяет, какое сейчас время и если время совпадает с указанным значением, то код отправляет уведомление. Почему-то код отправляет уведомления на час позже, хотя в else нету time.sleep()
import time
import datetime
from threading import Thread
def minute1():
print("Функция проверки 18 часов - запущена -")
Datetime = datetime.timezone(datetime.timedelta(hours=3))
now = datetime.datetime.now(Datetime)
Time = int(now.hour)
while Time != 18:
print("1 поток в режиме ожидания -\n")
Datetime = datetime.timezone(datetime.timedelta(hours=3))
now = datetime.datetime.now(Datetime)
Time = int(now.hour)
print(Time)
time.sleep(3600)
else:
week = now.isoweekday()
with open("TiMe.txt", mode="r", encoding="utf-8") as code:
s = code.read()
if s != str(week):
with open("TiMe.txt", mode="w", encoding="utf-8") as ime:
ime.write(str(week))
print("Отправка уведомления -")
return
def minute2():
print("Функция проверки 17 часов - запущена -")
Datetime = datetime.timezone(datetime.timedelta(hours=3))
now = datetime.datetime.now(Datetime)
Time = int(now.hour)
while Time != 17:
print("2 поток в режиме ожидания -\n")
Datetime = datetime.timezone(datetime.timedelta(hours=3))
now = datetime.datetime.now(Datetime)
Time = int(now.hour)
print(Time)
time.sleep(3600)
else:
week = now.isoweekday()
with open("TiMe.txt", mode="r", encoding="utf-8") as code:
s = code.read()
if s != str(week):
with open("TiMe.txt", mode="w", encoding="utf-8") as ime:
ime.write(str(week))
print("Отправка уведомления -")
print("Уведомление отправлено -")
return
def weekly():
print("Функция день недели запущена -")
Datetime = datetime.timezone(datetime.timedelta(hours=3))
now = datetime.datetime.now(Datetime)
week = now.isoweekday()
while True:
with open("TiMe.txt", mode="r") as t:
s = t.read()
Datetime = datetime.timezone(datetime.timedelta(hours=3))
now = datetime.datetime.now(Datetime)
week = now.isoweekday()
week = str(week)
if s != week:
with open("TiMe.txt", mode="w") as m:
m.write(week)
print("Изменение дня недели -")
print("Перезапуск консоли -")
Tread()
return
else:
print("3 поток в режиме ожидания -\n")
time.sleep(3600)
def Tread():
print("Консоль создана -")
Thread(target=minute1).daemon = True
Thread(target=minute2).daemon = True
Thread(target=weekly).daemon = True
print("Потоки завершены -")
Thread(target=minute1).start()
Thread(target=minute2).start()
Thread(target=weekly).start()
print("Потоки созданы -")
Tread()
Время sleep(), можно уменьшить, чтобы легче проверить