-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move request handling to IO thread #457
Labels
Comments
whiskeysierra
pushed a commit
that referenced
this issue
Jul 18, 2018
whiskeysierra
pushed a commit
that referenced
this issue
Jul 18, 2018
whiskeysierra
pushed a commit
that referenced
this issue
Jul 18, 2018
whiskeysierra
pushed a commit
that referenced
this issue
Jul 18, 2018
This was referenced Jul 18, 2018
whiskeysierra
pushed a commit
that referenced
this issue
Jul 19, 2018
whiskeysierra
pushed a commit
that referenced
this issue
Feb 5, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Detailed Description
Instead of using the current thread we should use the IO thread already during request creating, i.e. earlier.
Context
Right now the only thing that happens on the IO thread is the waiting for the response and the response processing. Everything related to the request, including but not limited to DNS lookup, body serialization, opening a connection and writing the request, is done on the calling thread. All of that has to move to the IO thread already. Unfortunately this is not straightfoward with the current API of AsyncClientHttpRequestFactory and AsyncClientHttpRequest.
Related to #449.
Possible Implementation
AsyncClientHttpRequestFactory
toClientHttpRequestFactory
RestAsyncClientHttpRequestFactory
AsyncClientHttpRequestFactory
AsyncListenableTaskExecutor
dependencyriptide-httpclient
toApache*
?Http
's builder APIExecutorStage
toHttp
interface which requires anExecutor
Http
instanceRequestFactoryStage.simpleRequestFactory(..)
DefaultHttp
Requester
ClientHttpRequestFactory.createRequest(..)
MessageWorker.write(..)
ClientHttpRequest.execute()
Your Environment
The text was updated successfully, but these errors were encountered: