Hi all, I'm continuing the apparently elusive quest to get a pipelining capable client. We're using the 4.2 HttpCore-NIO parts to build one. I'm aware of the issues with non-idempotent POST/PUT requests, as well as expect: 100-continue forcing a pipeline flush. We still need pipelining for our use case (high bandwidth message rate of small messages over long-latency links with idempotent PUT transfers). I found the previous mails on this list talking about do this in the AsyncNHttpClientHandler, which is now deprecated in 4.2.
It looks like I just need to modify HttpAsyncRequestExecutor to have a queue of states so it can track the messages that are in-flight but not yet replied to. It seems like it should work, but a first pass at it doesn't actually do pipelining. I am getting a feeling I also need to extend/replace HttpAsyncRequester and BasicAsyncRequestExecutionHandler in order to have a version of the handler where I can close the requestProducer and responseConsumer independently (producer once I move to MessageState.COMPLETED for that request, and consumer once we get a reply back). Can anyone comment if I'm on the right track, or off in the weeds? Thanks! --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
