Одновременное выполнение функций Python

Рейтинг: 1Ответов: 1Опубликовано: 06.05.2023

Написал бота, который принимает ID от пользователя, заносит его в список и делает с ним кое какие манипуляции. Проблема: пользователей у бота не один, из-за чего происходят сбои, в идее было сделать очередь, которую бот будет проверять раз в 5-10 секунд.

При реализации столкнулся с проблемой: не работает бот (из-за цикла while). Сам код (его пример):

queue = []
@bot.message_handler()
def get_id(message):  #Реагирует на сообщение от юзера. 
     queue.append(message.text)
     queue.append(message.from_user.id)
     queue.append(message.from_user.username)
     bot.send_message(message.from_user.id,f'Вы в очереди. Ваш номер - {len(queue) // 3}')


while True:
     #Скрипт который должен выполнятся
     time.sleep(5) #Сон на 5 секунд, чтобы не спамил

Не понимаю, как можно это все реализовать чтобы работало?

Ответы

▲ 0

Оказалось все довольно просто, спасибо комментатору который написал про threading

Добавил в конце:

if __name__ == '__main__':
    t1 = Thread(target=downloader, daemon = True)
    t1.start()  # Запустили один метод на выполнение в потоке
    while True:
        bot.polling(non_stop=True, interval=0)