所以我尝试使用Sanic来处理一些异步的web请求,因为我有一些特殊的请求需要几秒钟才能返回,但同时还想处理来自客户端的其他请求。下面是一个示例方法,它似乎仍然在等待来自客户端的其他调用获取报警状态库()回来。(lib.getAlartmState()是使用pythons ctypes对C库的调用,返回时间约为3秒,并返回Int类型。)
根据我在sanic文档中看到的,简单地将该方法定义为async就可以实现我想要做的事情?我试着在前面加上等待lib.getAlarmState()但我不确定我用得对。在
@app.route('/processjson')
async def processjson(request):
vals = lib.getAlarmState()
return response.json({"alarm:" : vals})
我希望当显示的方法停止工作时,我应该能够从客户端调用其他方法并获得响应。在
这是对的。Sanic将无法将阻塞调用转换为异步调用。也许,你可以尝试在一个单独的任务中运行它。在
相关问题 更多 >
编程相关推荐