@sumi3sew

Почему после двух активных юзеров бот не 'обслуживает' новых?

Есть тг бот, которому пользователь кидает отправляет 2 переменные, бот их записывает в БД и после нажатия на кнопку 'START' создает новый на метод, передавая введенные юзером данные

if message.text == 'START':
     var1 = 10
     var2 = 'asdasdads'
     thr = Thread(target = generate(var1, var2))

def generate(a,b):
     #вычисления

Это вычисление может длится очень долго.

Всё работает как и должно:
первый юзер вводит данные, запускает, происходят вычисления. В это же время второй юзер делает то же самое, у него так же всё работает.
Но у третьего юзера уже не будет работать ни одна команда бота, пока у первых двух происходят вычисления. И когда у одного вычисления прекратятся, только тогда бот обработает все команды, отправленные третьим юзером.

Подозреваю, что-то не так с потоками. В остальных частях кода просто запись введенных сообщений в переменные и вывод ответов, никаких ограничений в "2 активных юзера" я не ставил.

Спасибо всем, кто подскажет :)
  • Вопрос задан
  • 195 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ilya_chch
Позволю себе предложить вам использовать RQ или что-то подобное для обработки долгоиграющих запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы