服务器如何检查客户端的请求是否仍对flask API有效?

时间:2019-02-08 10:05:31

标签: python flask sublimetext3 mod-wsgi wsgi

我有一个flask API,它可以执行一些功能过程,并且只需几分钟即可返回。有时,请求将被客户端中止。在这些情况下,我想取消处理。我该如何在烧瓶中做到这一点?

我找到了一个临时解决方案。

@app.route('/stream')
    def stream():
       def gen():
           try:
               i = 0
               while True:
                   data = 'this is line {}'.format(i)
                   print(data)
                   yield data + '<br>'
                   i += 1
                   time.sleep(1)
           except GeneratorExit:
               print('closed')

return Response(stream_with_context(gen()))

现在,当我们通过崇高请求时,此功能适用于浏览器,过了一段时间,我们关闭了崇高状态,flask api无法识别客户端终止

1 个答案:

答案 0 :(得分:0)

使用celery程序包,并将其作为任务运行。然后,您可以使用任何其他途径来启动revoke()函数,该函数将停止celery任务,例如。 your_worker.revoke(task_id,Terminate = True)。