Guest User

Untitled

a guest
Mar 9th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. import asyncio
  2. import aiomysql
  3.  
  4. from threading import Thread
  5.  
  6. def start_loop(loop):
  7. asyncio.set_event_loop(loop)
  8. loop.run_forever()
  9.  
  10. async def create_pool(loop, **kw):
  11. global __pool
  12. __pool = await aiomysql.create_pool(
  13. host=kw.get('host', 'localhost'),
  14. port=kw.get('port', 3306),
  15. user=kw['user'],
  16. password=kw['password'],
  17. db=kw['db'],
  18. charset=kw.get('charset', 'utf8'),
  19. autocommit=kw.get('autocommit', True),
  20. maxsize=kw.get('maxsize', 10),
  21. minsize=kw.get('minsize', 1),
  22. loop=loop
  23. )
  24.  
  25. async def select():
  26. global __pool
  27. async with __pool.acquire() as conn:
  28. async with conn.cursor(aiomysql.DictCursor) as cur:
  29. print('ok here')
  30. await cur.execute('select * from test')
  31. print('failed here')
  32. rs = await cur.fetchall()
  33. print('rows returned: %s' % len(rs))
  34.  
  35. loop = asyncio.get_event_loop()
  36. new_loop = asyncio.new_event_loop()
  37. t = Thread(target=start_loop, args=(new_loop,))
  38. loop.run_until_complete(create_pool(loop, user='user', password='password', db='test'))
  39. t.start()
  40. asyncio.run_coroutine_threadsafe(select(), new_loop)
Add Comment
Please, Sign In to add comment