-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Add EmitFailureHandler.busyLoop flavor #2943
Conversation
…l a specified duration to overcome transient failure.
@Animesh27 Please sign the Contributor License Agreement! Click here to manually synchronize the status of this Pull Request. See the FAQ for frequently asked questions. |
1 similar comment
@Animesh27 Please sign the Contributor License Agreement! Click here to manually synchronize the status of this Pull Request. See the FAQ for frequently asked questions. |
@simonbasle I have implemented an Note - This is a draft version of the PR. |
@Animesh27 Thank you for signing the Contributor License Agreement! |
@Animesh27 yeah that's what I had in mind 👍 |
@Animesh27 you just need to add tests and document the feature (with the caveats mentioned in the issue) and this should be good to go 😄 @hepin1989 does that solve your original issue? |
} | ||
@Override | ||
public boolean onEmitFailure(SignalType signalType, Sinks.EmitResult emitResult) { | ||
return emitResult.equals(Sinks.EmitResult.FAIL_NON_SERIALIZED) && (System.nanoTime() > duration); |
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.
Cool!
@simonbasle Yes ,that What I was using in my code too:) and thanks @Animesh27 |
…l a specified duration to overcome transient failure.
…actor-core into EmitHandler-BusyTry # Conflicts: # reactor-core/src/main/java/reactor/core/publisher/OptimisticEmitFailureHandler.java
@simonbasle Updated with docs and tests. |
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.
thanks for the changes @Animesh27. I have requested a few further changes to polish all that, align with our usual design and avoid a new public class, this PR is getting closer to merge 👍
reactor-core/src/test/java/reactor/core/publisher/OptimisticEmitFailureHandlerTest.java
Outdated
Show resolved
Hide resolved
reactor-core/src/main/java/reactor/core/publisher/OptimisticEmitFailureHandler.java
Outdated
Show resolved
Hide resolved
reactor-core/src/main/java/reactor/core/publisher/OptimisticEmitFailureHandler.java
Outdated
Show resolved
Hide resolved
reactor-core/src/main/java/reactor/core/publisher/OptimisticEmitFailureHandler.java
Outdated
Show resolved
Hide resolved
reactor-core/src/main/java/reactor/core/publisher/OptimisticEmitFailureHandler.java
Outdated
Show resolved
Hide resolved
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.
LGTM, 1 small nitpick on code formatting but otherwise this is good to go
eh |
Yeah I'll merge tomorrow I need to ensure this gets to both 3.4.x and main
|
@simonbasle this PR seems to have been merged on a maintenance branch, please ensure the change is merge-forwarded to intermediate maintenance branches and up to |
….16 (#778) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [io.projectreactor:reactor-core](https://togithub.com/reactor/reactor-core) | `3.4.15` -> `3.4.16` | [![age](https://badges.renovateapi.com/packages/maven/io.projectreactor:reactor-core/3.4.16/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/io.projectreactor:reactor-core/3.4.16/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/io.projectreactor:reactor-core/3.4.16/compatibility-slim/3.4.15)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/io.projectreactor:reactor-core/3.4.16/confidence-slim/3.4.15)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>reactor/reactor-core</summary> ### [`v3.4.16`](https://togithub.com/reactor/reactor-core/releases/v3.4.16) [Compare Source](https://togithub.com/reactor/reactor-core/compare/v3.4.15...v3.4.16) Reactor-Core `3.4.16` is part of **`2020.0.17` Release Train (`Europium` SR17)**. This service release contains a few bugfixes and improvements. #### What's Changed ##### ✨ New features and improvements - Improve BoundedElasticScheduler to be less blocking by [@​simonbasle](https://togithub.com/simonbasle) in [reactor/reactor-core#2909 - Add EmitFailureHandler.busyLoop flavor by [@​Animesh27](https://togithub.com/Animesh27) in [reactor/reactor-core#2943 ##### 🐞 Bug fixes - Fix Mono.then not cancelling between Callable sources by [@​simonbasle](https://togithub.com/simonbasle) in [reactor/reactor-core#2934 ##### 📖 Documentation, Tests and Build - Update Gradle to v7.4 in [reactor/reactor-core#2922 - \[doc] Correct flux subscribe example in faq by [@​liukun2634](https://togithub.com/liukun2634) in [reactor/reactor-core#2924 - Show how-to-fix hints in CI when preliminary steps fail (check of license headers, api compatibility) by [@​simonbasle](https://togithub.com/simonbasle) in [reactor/reactor-core#2932 - \[guide] Remove ref to Swing/SwtScheduler in addons appendix by [@​simonbasle](https://togithub.com/simonbasle) in [reactor/reactor-core#2959 - \[build] Have jcstress part of slowerChecks by [@​simonbasle](https://togithub.com/simonbasle) in [reactor/reactor-core#2958 ##### 🆙 Dependency Upgrades - Update plugin spotless to v6.3.0 in [reactor/reactor-core#2925 - Update plugin bnd to v6.2.0 in [reactor/reactor-core#2941 - Update dependency org.awaitility:awaitility to v4.2.0 in [reactor/reactor-core#2945 - Update dependency ch.qos.logback:logback-classic to v1.2.11 in [reactor/reactor-core#2946 - Update dependency com.tngtech.archunit:archunit to v0.23.1 in [reactor/reactor-core#2940 - Update plugin japicmp to v0.4.0 in [reactor/reactor-core#2948 - Update dependency org.mockito:mockito-core to v4.4.0 in [reactor/reactor-core#2951 - Update plugin download to v5.0.2 in [reactor/reactor-core#2950 #### New Contributors - [@​Animesh27](https://togithub.com/Animesh27) made their first contribution in [reactor/reactor-core#2943 👍 **Full Changelog**: reactor/reactor-core@v3.4.15...v3.4.16 </details> --- ### Configuration 📅 **Schedule**: "after 8am on Friday,before 12pm on Friday" (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory).
Adding OptimisticEmitFailureHandler for retrying and busy looping till a specified duration to overcome transient failure.
Fixes #2883.