Задать вопрос
shabyt-eaton
@shabyt-eaton
js, python developer

Как запустить 2 eventloop telebot python?

Привет habr! Я решил сделать бота, который будет принимать некие параметры, после он будет начинать отправлять сообщения по заданным параметрам ( entity, delay, text, times ), но возникла проблема, я пытаюсь запустить два eventloop`а, один из них telebot infinity polling для бота который получает данные, а второй тоже telebot infinity polling но для клиент-аккаунта телеграм, который будет выполнять функционал бота. Моя последняя, проблемная функция выглядит так:
def implement(message):
    if message.text == "✅Да":
        bot.send_message(message.chat.id, "Погнали!")
        bot.send_message(message.from_user.id, message.from_user.id)
        startBot(message, user.count, user.text, user.delay)  # вот она, проблемная функция, при её выполнении вылезает ошибка ниже, после кода. Все данные сохраняются в объекте user, если это как-то касается решения.
    elif message.text == "❌Нет":
        msg = bot.send_message(
            message.chat.id, "Возвращаю в главное меню...", reply_markup=markup)
        bot.register_next_step_handler(msg, welcome)

Ошибка:
2022-05-25 21:16:20,277 (__init__.py:573 MainThread) ERROR - TeleBot: "Infinity polling exception: There is no current event loop in thread 'WorkerThread2'."
2022-05-25 21:16:20,278 (__init__.py:575 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 569, in infinity_polling
    self.polling(none_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 620, in polling
    self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 694, in __threaded_polling
    raise e
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 650, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 143, in raise_exceptions
    raise self.exception_info
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 89, in run
    task(*args, **kwargs)
  File "C:\Users\Администратор\Desktop\workspace\python\autopost bot\main.py", line 142, in debug
    autoPost(message, user.count, user.text, user.delay)
  File "C:\Users\Администратор\Desktop\workspace\python\autopost bot\main.py", line 132, in autoPost
    client.send_message(entity, text)
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\telethon\sync.py", line 35, in syncified
    loop = asyncio.get_event_loop()
  File "C:\Users\User\AppData\Local\Programs\Python\Python310\lib\asyncio\events.py", line 656, in get_event_loop
    raise RuntimeError('There is no current event loop in thread %r.'
RuntimeError: There is no current event loop in thread 'WorkerThread2'.
  • Вопрос задан
  • 269 просмотров
Подписаться 2 Простой 5 комментариев
Пригласить эксперта
Ваш ответ на вопрос

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

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