-
Notifications
You must be signed in to change notification settings - Fork 184
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
Improve timeout support for HTTP #1456
Conversation
Minor comments. |
...ternal/src/main/groovy/io/servicetalk/gradle/plugin/internal/ServiceTalkLibraryPlugin.groovy
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-netty/src/test/java/io/servicetalk/http/netty/ResponseTimeoutTest.java
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Show resolved
Hide resolved
...helloworld/src/main/java/io/servicetalk/examples/http/helloworld/async/HelloWorldClient.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Show resolved
Hide resolved
2f6e0c9
to
c690727
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple polishing comments and ship it. Can't wait to use these enhancements instead of a custom filters
...ternal/src/main/groovy/io/servicetalk/gradle/plugin/internal/ServiceTalkLibraryPlugin.groovy
Outdated
Show resolved
Hide resolved
...helloworld/src/main/java/io/servicetalk/examples/http/helloworld/async/HelloWorldClient.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-examples/http/timeout/src/main/resources/log4j2.xml
Outdated
Show resolved
Hide resolved
...-examples/http/timeout/src/main/java/io/servicetalk/examples/http/timeout/TimeoutClient.java
Outdated
Show resolved
Hide resolved
...-examples/http/timeout/src/main/java/io/servicetalk/examples/http/timeout/TimeoutServer.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Outdated
Show resolved
Hide resolved
...-examples/http/timeout/src/main/java/io/servicetalk/examples/http/timeout/TimeoutClient.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
...ternal/src/main/groovy/io/servicetalk/gradle/plugin/internal/ServiceTalkLibraryPlugin.groovy
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpServiceFilter.java
Show resolved
Hide resolved
Motivation: Some uses of the HTTP API require progress or completion within specified time limits. Modifications: New or enhanced filters are proivded for client and server to manage timeout events. Existing client filter `TimeoutHttpRequesterFilter` is enhanced to support additional timeout options for the entire HTTP request/response transaction. A new server filter `TimeoutHttpServiceFilter` is provided for managing timeouts by services. Result: HTTP API provides request/response transaction timeout capabilities
Also adds more details about AsyncContext use with defaultTimeout()
Add support for fullRequestResponse timeout to ServiceFilter More common code in filters Move simpleDurationTimeout() to TimeoutFromRequest
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's merge this PR after simpleDurationTimeout
is made pkg-private. The PR looks correct from the implementation and API point of view. Code sharing can be done in a follow-up PR, if ever necessary.
Thank you for the great improvement!
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutHttpRequesterFilter.java
Outdated
Show resolved
Hide resolved
servicetalk-http-utils/src/main/java/io/servicetalk/http/utils/TimeoutFromRequest.java
Outdated
Show resolved
Hide resolved
Motivation: Some uses of the HTTP API require progress or completion within specified time limits. Modifications: New or enhanced filters are proivded for client and server to manage timeout events. Existing client filter `TimeoutHttpRequesterFilter` is enhanced to support additional timeout options for the entire HTTP request/response transaction. A new server filter `TimeoutHttpServiceFilter` is provided for managing timeouts by services. Result: HTTP API provides request/response transaction timeout capabilities
Motivation:
Some uses of the HTTP API require progress or completion within specified time limits.
Modifications:
New or enhanced filters are provided for client and server to manage timeout events.
Existing client filter
TimeoutHttpRequesterFilter
is enhanced to support additionaltimeout options for the entire HTTP request/response transaction. A new server filter
TimeoutHttpServiceFilter
is provided for managing timeouts by services.Result:
HTTP API provides request/response transaction timeout capabilities