我有3个python脚本
这3个脚本按预期的方式单独工作。下一步是创建一个API端点,它将以一个帐户名作为请求参数,然后为接收到的帐户触发上述3个脚本。最终的分析结果将存储在数据库中。
端点还需要有一个排队机制来存储接收到的帐户名。队列将被轮询,如果帐户名可用,它们将按顺序处理。
我的API开发经验有限,所以我不确定解决这个问题的最佳方法。我的问题是:
发布于 2019-03-13 02:48:37
要从API获取信息并保存它,我建议使用异步执行如下
import asyncio
import aiohttp
import time
import aiofiles as aiof
FILENAME = "foo.txt"
loop = asyncio.get_event_loop()
async def fetch(session, url):
async with session.get(url) as response:
async with aiof.open(FILENAME, "a") as out:
out.write((await response.json()))
out.flush()
async def main():
instagram-ids = [] #profile ids
current = time.time()
url = "INSTAGRAM_API_URL"
tasks = []
async with aiohttp.ClientSession() as session:
for id in instagram-ids:
tasks.append(loop.create_task(fetch(session, url.format(id))))
responses = await asyncio.gather(*tasks)
print(time.time() - current)
loop.run_until_complete(main())
因为处理API的大部分时间都花在等待结果上。
https://stackoverflow.com/questions/55139481
复制相似问题