Ich habe eine Tornado RequestHandler
mit der @tornado.web.stream_request_body
Dekorator, um chunked Streaming an den Handler zu ermöglichen.Anmutig schließen Tornado Streaming-Anfrage
Ich muss Authentifizierung und einige andere Überprüfungen vor dem Streaming durchführen. Ich habe versucht, diese in den RequestHandler.prepare()
Verfahren zu implementieren, aber wenn ich requests
verwenden, um Daten an die Prozedur zu streamen, und die Prüfungen nicht besteht, wird die Verbindung abrupt geschlossen, und ich sehe eine Ausnahme:
requests.exceptions.ConnectionError: [Errno 32] Broken pipe
Meine prepare()
Methode wie folgt aussieht:
def prepare(self):
check = some_function()
if not check:
self.set_status(400)
self.write('some error message')
self.finish()
return
Wie kann ich die Anforderung stellen Sie sicher, anmutig so geschlossen ist, ich eine Fehlermeldung an den Client zurückgeben kann, wenn die Prüfungen nicht?
Sie können versuchen, 'prepare' mit' @ coroutine' zu verbinden, damit Tornado auf die Überprüfung wartet. Daher muss "Some_function" auch eine Coroutine sein. – desertkun