我有一个烧瓶 REST 端点,它执行一些 cpu 密集型图像处理并需要几秒钟才能返回。通常,此端点被调用,然后被客户端中止。在这些情况下,我想取消处理。我怎样才能在烧瓶中做到这一点?
在 node.js 中,我会执行以下操作:
req.on('close', function(){
//some handler
});
我期待烧瓶有类似的东西,或者一个同步方法(request.isClosed()),我可以在处理过程中的某些点检查它,如果它关闭则返回,但我找不到。
我考虑过发送一些东西来测试连接是否仍然打开,并在失败时捕获异常,但似乎 Flask 缓冲了所有输出,因此在处理完成并尝试返回结果之前不会抛出异常:
已建立的连接被主机中的软件中止
如果客户中止他们的请求,我如何才能中途取消我的处理?