在MySQLdb中使用asyncio

时间:2018-10-13 02:25:00

标签: python mysql asynchronous mysql-python

我试图了解phone_number_regex_pattern = r"\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}" 以及如何与MySQLdb一起使用。我想我只是不了解asyncio的工作原理。例如,假设我要同时异步执行两个查询。例如,如果没有异步,而我正在执行两个查询,那么我可能会这样做

asyncio

这很慢,因为它甚至需要启动import MySQLdb def test1(): conn = MySQLdb.connect('host', 'user', 'password', 'db') conn.query('FIND * FROM table1') return conn.store_result().fetch_row(numrows=0, how=1) conn.close() def test1(): conn = MySQLdb.connect('host', 'user', 'password', 'db') conn.query('FIND * FROM table2') return conn.store_result().fetch_row(numrows=0, how=1) conn.close() if __name__ == '__main__': foo1 = test1() foo2 = test2() 之前就需要从test1()完成查询。我的理解是test2()可以为您提供帮助,因为它可以启动一个函数,然后放开控件来执行第二个函数。我以为您是通过使用asyncio将函数转换为异步函数来完成此操作的,然后说出要使用async在函数中等待的位置,但是我敢肯定我会误解这一点。这就是我想要做的:

await

这不起作用。有没有办法通过这种方式用MySQLdb进行异步查询?我正在使用Python 3.6。

1 个答案:

答案 0 :(得分:0)

您真的误解了异步。您首先应该有一个异步库来获得异步支持。显然range不是。

看看https://github.com/aio-libs/aiomysql