Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2020
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.00 KB | None | 0 0
  1. import asyncio
  2. import random
  3.  
  4.  
  5. async def recv(message: str, max_sleep: int):
  6.     sleep_time = max_sleep * random.random()
  7.     await asyncio.sleep(sleep_time)
  8.     return f'{message} awaited for {sleep_time:.2f}s'
  9.  
  10.  
  11. class ConnectionWrapper:
  12.     def __init__(self):
  13.         self.queue = asyncio.Queue()
  14.  
  15.         async def wrapper1():
  16.             while True:
  17.                 msg = await recv("Messager 1", 1)
  18.                 await self.queue.put(msg)
  19.  
  20.         async def wrapper2():
  21.             while True:
  22.                 msg = await recv("Messager 2", 2)
  23.                 await self.queue.put(msg)
  24.  
  25.         self.task1 = asyncio.create_task(wrapper1())
  26.         self.task2 = asyncio.create_task(wrapper2())
  27.  
  28.     async def recv(self):
  29.         return await self.queue.get()
  30.  
  31.  
  32. async def _start():
  33.     connection_wrapper = ConnectionWrapper()
  34.     while True:
  35.         result = await connection_wrapper.recv()
  36.         print(result)
  37.  
  38. loop = asyncio.get_event_loop()
  39. loop.run_until_complete(_start())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement