异步Python:从同步库中读取多个URL

时间:2019-07-20 10:11:39

标签: python django asynchronous asyncio

我正在使用不是异步库的python-twitter并将其写入Django模型。为了提高速度,我需要做的是一次读取n 100批次的user_id。所以:

[[1234, 4352, 12542, ...], [2342, 124124, 235235, 1249, ...], ...]

其中每一个都必须命中api.twitter.com/users/lookup.json之类的东西。

我尝试使用类似的方法,但它似乎是同步运行的:

await asyncio.gather(*[sync_users(user, api, batch) for batch in batches], return_exceptions=False)

我也曾尝试包装同步库调用,但这似乎也是同步运行的。如何一次发送所有用户名查找请求?

loop = asyncio.get_event_loop()
executor = ThreadPoolExecutor(max_workers=5)
results = await loop.run_in_executor(executor, api.UsersLookup(user_id=batch, include_entities=True))

1 个答案:

答案 0 :(得分:0)

尝试批量调用而不是批量调用

AnyActivity.isConnected()