2017-11-28 5 views
1

Ich möchte POST-Anfrage über ein DoFn für eine Apache Beam-Pipeline, die auf Dataflow läuft.HTTP-Client in DoFn

Dafür habe ich einen Client erstellt, der einen HttpClosableClient instanziiert, der auf einem PoolingHttpClientConnectionManager konfiguriert ist.

Ich installiere jedoch einen Client für jedes Element, das ich verarbeite.

Wie kann ich einen permanenten Client einrichten, der von allen meinen Elementen verwendet wird?

Und gibt es andere Klasse für parallele und High-Speed-HTTP-Anforderungen, die ich verwenden sollte?

Antwort

1

Sie können den Client in eine Elementvariable einfügen, verwenden Sie die @Setup Methode, um es zu öffnen, und @Teardown, um es zu schließen. Die Implementierung von fast allen IOs in Beam verwendet dieses Muster, z. siehe JdbcIO.