Ich möchte senden einen Strom von einer Reihe von Dokumenten an einen Web-Service. Dies spart den HTTP-Request/Response-Overhead und konzentriert sich auf die Dokumente selbst.Senden eines Stream von Dokumenten an einen Jersey @ POST-Endpunkt
In Python können Sie etwas tun:
r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
data={'track': 'requests'}, auth=('username', 'password'),
stream=True)
for line in r.iter_lines():
if line: # filter out keep-alive new lines
print json.loads(line)
Ich bin ein Beispiel für jemanden, der eine Anfrage an einen Jersey Rest api Streaming. Ich hatte gehofft, die Client-Seite und die Server-Seite zu sehen, dass es funktioniert. Aber ich kämpfe hart, um dort ein Beispiel zu finden.
Das Beispiel würde zeigen Idealer:
Client:
Open request
Iterate over huge document list
Write document to open request stream
Close request
Server:
@POST method
Open entity stream
Iterate over entity stream while next document is available
Process document
Close entity stream
Wenn wir es richtig finden Sie auf dem Server-Verarbeitungseinheiten, während sie noch auf dem Client zu senden! Großer Gewinn!
Wenn Ihr Client und Server sind beide Jersey-basiert, könnten Sie versuchen, [ChunkedOutput] (https://jersey.java.net/documentation/latest/async. html # chunked-output) und ein entsprechender ChunkedInput. Ich weiß nicht, wie ein Client in Javascript ChunkedInput jedoch tun würde. –
Gibt es einen Grund, warum wir die Dateien nicht einzeln einsenden? –
Riesige Batch-Prozess. Interesse an Geschwindigkeit mit wenigen Knoten wie möglich. Streaming wird viel Aufwand sparen, wenn ich mir das richtig überlege. –