我有3个python脚本
这3个脚本分别按预期工作。下一步是创建一个API端点,该端点将以帐户名作为请求参数,然后为接收到的帐户触发上述3个脚本。最终分析结果将存储在数据库中。
端点还需要具有一种排队机制来存储收到的帐户名。队列将被轮询,并且如果帐户名可用,则将按顺序处理它们。
我的API开发经验有限,因此我不确定解决此问题的最佳方法。我的问题是:
答案 0 :(得分:1)
要从API获取信息并将其保存,我建议使用asyncio做类似
的操作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的大部分时间都花在等待结果上