Как начать выполнять функцию в другом потоке? Python
Проблема состоит в следующем. У меня есть функция(view_tasks), в которой есть бесконечный цикл, который прекратит своё выполнение при получении сообщения от пользователя в чат-боте. Мне нужно добавить эту функцию в другой поток, чтобы не загружать бота. Иначе получается так, что бот ждёт выполнения этой функции от конкретного пользователя и не может отвечать другому.
Пример:
def view(message, task):
os.chdir(BASE)
photo = {'photo': open(f"{task[4]}\{task[1]}", 'rb')}
text = f"Номер вопроса: {task[0]}. Вам даётся {task[2]} минуты."
requests.post(f'{URL}{BOT_TOKEN}/sendPhoto?chat_id={message.chat.id}&caption={text}', files=photo)
def wait_answer(message, q):
answers[q] = "+"
answer[q] = message.text
def view_tasks(message):
stop = 0
for task in tasks:
if stop == 1: break
view(message, task)
printy(message.chat.id, "Введите ответ (число или пара чисел, записанных через пробел)")
while answers[int(task[0])] == "-":
if datetime.now() > dt_time_stop:
printy(message.chat.id, f"Время кончилось. Вариант {number} отправлен на проверку")
stop = 1
break
bot.register_next_step_handler(message, wait_answer, int(task[0]))
time.sleep(3)
Источник: Stack Overflow на русском