Как НЕ запускать новый таймер, если уже запущен
подскажите пожалуйста, не получается разобраться. Создаю телеграм-бота. При нажатии на кнопку должен запускаться таймер. При повторном нажатии - если таймер уже запущен, пользователь должен быть уведомлен об этом. В противном случае логично - должен начинаться новый таймер. В коде ниже у меня не получается выполнять проверку, таймер всегда запускается повторно при нажатии на кнопку(кнопка в примере ниже: "Герой". Вероятно я логически не правильно мыслю и создавать такие таймеры/потоки нужно по другому.
@bot.message_handler(content_types=['text'])
def buttons(message):
if message.chat.type == 'private':
if message.text == '?♂️Герой':
def hello():
print ('hello')
t = threading.Timer(4, hello)
if t.is_alive():
print('wait to end')
else:
t.start()
print('timer is up')
Ответы (1 шт):
Автор решения: RAINGM
→ Ссылка
@bot.message_handler(content_types=['text'])
def buttons(message):
timer_exists = False
if message.chat.type == 'private':
if message.text == '?♂️Герой':
def hello():
print ('hello')
if not timer_exists:
t = threading.Timer(4, hello)
timer_exists = True
if t.is_alive():
print('wait to end')
else:
t.start()
print('timer is up')