SHARE
TWEET

Untitled

Master_Groosha Oct 18th, 2019 90 in 3 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import asyncio
  2. from threading import Thread
  3.  
  4. new_loop = asyncio.new_event_loop()
  5.  
  6. def start_loop(loop):
  7.     # Запускаем луп в отдельном треде
  8.     print("Loop started in a separate thread")
  9.     asyncio.set_event_loop(loop)
  10.     loop.run_forever()
  11.  
  12. def repeat_request(message):
  13.     # Каждый вызов такой функции должен быть бесконечным  (да)
  14.     print("ENTERED REPEAT!")
  15.     while True:
  16.         sleep(5)
  17.         do_something()
  18.         continue
  19.  
  20. @dp.message_handler()
  21. async def everything(message: types.Message):
  22.     # Если сделать так, то будет выполняться только первый вставший в обработку цикл
  23.     asyncio.run_coroutine_threadsafe(repeat_code_request(message), new_loop)
  24.  
  25.     # Аналогично (альтернатива варианту выше)
  26.     new_loop.call_soon_threadsafe(repeat_code_request, message)
  27.  
  28. if __name__ == '__main__':
  29.     t = Thread(target=start_loop, args=(new_loop,))
  30.     t.start()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top