Как задать зажержку боту на отправку сообщений? Python telebot
Пытаюсь разбраться, как через функцию задать задержку в 3 секунды, после чего должно отправиться сообщение. Использую asyncio и по сути через ключевое слово await откладываю действие на время. Мне нужно сделать так: идет проверка в условном операторе, если значение истинно, то переходим в функцию, в ней будет задержка на 3 секунды и должно отправиться сообщение, но мне выдает в консоли RuntimeWarning: Enable tracemalloc to get the object allocation traceback. Чего то не хватает? Или что то надо убрать?
if rand % 2 == 1:
delay_time(message)
...
@bot.message_handler(content_types=['text'])
async def delay_time(message):
await asyncio.sleep(3)
await bot.send_message(message.chat.id, "проверка выполнена!")
Ответы (1 шт):
Ответ не заставил себя долго ждать, в самой функции нужно было убрать await вот тут await bot.send_message(message.chat.id, "проверка выполнена!"), далее, чтобы правильно вызвать функцию, порылся в документации и написал так asyncio.run(delay_time(message)) и вуаля, все работает :)
if rand % 2 == 1:
asyncio.run(delay_time(message))
...
@bot.message_handler(content_types=['text'])
async def delay_time(message):
await asyncio.sleep(3)
bot.send_message(message.chat.id, "проверка выполнена!")