使用aiohttp

时间:2018-11-22 11:54:09

标签: python-3.x aiohttp

要求

  1. webservice支持初始化机器学习模型的训练功能并返回成功,大约需要4个 小时即可完成。

  2. 以支持先前训练过的模型的预测功能。

  3. 以上两个函数均应以非阻塞方式并行运行。

我们能够通过使用celery创建任务队列并将训练功能推入队列来实现这一目标,但是我们想知道是否有更好的方法。

我寻找了异步Web服务模块并找到了aiohttp。我在下面的示例代码中编写了代码,但是如果我尝试运行run_job函数,那么预测函数将被阻塞。

from aiohttp import web


async def training_job():
     for i in range(100100):
        print(i)
     return i

async def predict(request):
    ## some logic
    text = "Value after logic"
    return web.Response(text=text)

async def run_job(request):
    result = await training_job()
    return web.Response(text="Done")

app = web.Application()
app.add_routes([web.get('/', predict),
                web.get('/run_job', run_job)])

web.run_app(app)

0 个答案:

没有答案