Comments (3)
I think you need to invert what you consider success and failure.
You could do this by throwing an IoException when your job is successfull,
and when your job fails, catch all exceptions and return a normal result.
If you make your job be Callable, and catch any exceptions that
fire in the run method and return them.
If no exceptions are thrown then throw a new IoException.
:)
On Monday, 12 May 2014, parxier [email protected] wrote:
I have a use case where I need to retry few times even on successful
result and fail immediately if there were any failures in between.For instance my callable returns an Integer, I'd like to retry 5 times
even when callable returns expected Integer, but fail immediately when it
returns unexpected result.I couldn't find an easy way to do this with current API.
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/22
.
from guava-retrying.
@marcomorain thanks for a suggestion, but no matter how hard I tried I couldn't get it working the way you describe.
What I did instead is I left callable as is, but reversed result predicate, so instead of using retryIfResult(not(equalTo(expected)))
I use retryIfResult(equalTo(expected))
. This causes retry on success. Then if retryer.call(operation)
returns successfully it means there was an error. Also if it throws RetryException
I catch it and do nothing as it means that all attempts were successful.
It is cumbersome, but works with current retryer API.
from guava-retrying.
This appears to be resolved.
from guava-retrying.
Related Issues (20)
- Since this project has not been maintained for a long time, I fork this project and fix the problem
- Feature Request: remove final modifier from com.github.rholder.retry.Retryer
- Failed to collect dependencies at com.github.rholder:guava-retrying:jar:2.0.0 HOT 5
- Any interest in a Future's retryer? HOT 2
- The lib is crashing when used in Ratpack (guava-20.0rc1) HOT 4
- Retryer.call should not catch Errors like OOME
- Could I build the Retryer with different executors? HOT 3
- ./gradlew build on macOS Sierra with JDK 1.8 throwing a Java compile error HOT 3
- is there a way to make it log what it's doing? HOT 3
- Is there a way to do this on something that is not a callable? HOT 5
- artifact has a compile time dependency on jsr305
- RetryerBuilder having protected constructor HOT 2
- Project appears to be dead: it has been forked to rhuffman/re-retrying HOT 1
- Initial wait time in an exponential retry strategy. HOT 3
- When i should use Fibonacci WaitStrategy
- When I run demo , when successNum coming my process can not exit immediately
- WaitStrategies documentation should mention milliseconds
- The problem with 'AttemptTimeLimiters.fixedTimeLimit' HOT 2
- doubts about SimpleTimeLimiter has private Constructor,but FixedAttemptTimeLimit new it?
- Bug: StopStrategies&StopStrategies will throw unformatted message HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from guava-retrying.