2
我有一個Web服務(REST),其中一個請求可能需要長達30秒才能返回一個答案(大量計算)。在計算過程中,客戶端瀏覽器會中止(?)現有連接並重試。這裏是服務器端的控制檯輸出:Flask/http-告訴客戶端請求需要更多時間來完成
Exception happened during processing of request from ('127.0.0.1', 53209)
Traceback (most recent call last):
File "C:\Users\tmx\Anaconda2\lib\SocketServer.py", line 290, in _handle_request_noblock
self.process_request(request, client_address)
File "C:\Users\tmx\Anaconda2\lib\SocketServer.py", line 318, in process_request
self.finish_request(request, client_address)
File "C:\Users\tmx\Anaconda2\lib\SocketServer.py", line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Users\tmx\Anaconda2\lib\SocketServer.py", line 654, in __init__
self.finish()
File "C:\Users\tmx\Anaconda2\lib\SocketServer.py", line 713, in finish
self.wfile.close()
File "C:\Users\tmx\Anaconda2\lib\socket.py", line 283, in close
self.flush()
File "C:\Users\tmx\Anaconda2\lib\socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 10053] An established connection was aborted by the software in your host machine
一個選擇是什麼,我認爲是以某種方式通知客戶端,「我alivem但請求仍需要一些時間」,或以某種方式設置服務器端的超時。有什麼可能性?
嗯,聽起來很有道理。雖然我得到一個TypeError:'generator'對象不可調用。任何想法? – ThomasMX
嘗試返回'Response(generator_that_does_the_calculation())' –
謝謝,這種方式它的工作原理。請更新您的原始答案:) – ThomasMX