-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Messenger ] Extract retry delay from nested RecoverableExceptionInterface
#59513
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
Conversation
Hey! I see that this is your first PR. That is great! Welcome! Symfony has a contribution guide which I suggest you to read. In short:
Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change. When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor! I am going to sit back now and wait for the reviews. Cheers! Carsonbot |
src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php
Outdated
Show resolved
Hide resolved
src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php
Outdated
Show resolved
Hide resolved
src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php
Outdated
Show resolved
Hide resolved
src/Symfony/Component/Messenger/EventListener/SendFailedMessageForRetryListener.php
Show resolved
Hide resolved
08b9647
to
4a02222
Compare
Thank you @AydinHassan. |
Thanks all! |
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [symfony/doctrine-messenger](https://symfony.com) ([source](https://redirect.github.com/symfony/doctrine-messenger)) | `7.2.2` -> `7.2.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/framework-bundle](https://symfony.com) ([source](https://redirect.github.com/symfony/framework-bundle)) | `7.2.2` -> `7.2.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/mailer](https://symfony.com) ([source](https://redirect.github.com/symfony/mailer)) | `7.2.0` -> `7.2.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/messenger](https://symfony.com) ([source](https://redirect.github.com/symfony/messenger)) | `7.2.1` -> `7.2.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/runtime](https://symfony.com) ([source](https://redirect.github.com/symfony/runtime)) | `7.2.0` -> `7.2.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/security-bundle](https://symfony.com) ([source](https://redirect.github.com/symfony/security-bundle)) | `7.2.2` -> `7.2.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/web-profiler-bundle](https://symfony.com) ([source](https://redirect.github.com/symfony/web-profiler-bundle)) | `7.2.2` -> `7.2.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>symfony/doctrine-messenger (symfony/doctrine-messenger)</summary> ### [`v7.2.3`](https://redirect.github.com/symfony/doctrine-messenger/compare/v7.2.2...v7.2.3) [Compare Source](https://redirect.github.com/symfony/doctrine-messenger/compare/v7.2.2...v7.2.3) </details> <details> <summary>symfony/framework-bundle (symfony/framework-bundle)</summary> ### [`v7.2.3`](https://redirect.github.com/symfony/framework-bundle/releases/tag/v7.2.3) [Compare Source](https://redirect.github.com/symfony/framework-bundle/compare/v7.2.2...v7.2.3) **Changelog** (symfony/framework-bundle@v7.2.2...v7.2.3) - bug [symfony/symfony#58889](https://redirect.github.com/symfony/symfony/issues/58889) \[Serializer] Handle default context in Serializer ([@​Valmonzo](https://redirect.github.com/Valmonzo)) - bug [symfony/symfony#59625](https://redirect.github.com/symfony/symfony/issues/59625) \[FrameworkBundle] Add missing `not-compromised-password` entry in XSD (@​alexandre-daubois) - bug [symfony/symfony#59581](https://redirect.github.com/symfony/symfony/issues/59581) \[Cache] Don't clear system caches on `cache:clear` (@​nicolas-grekas) - bug [symfony/symfony#59579](https://redirect.github.com/symfony/symfony/issues/59579) \[FrameworkBundle] Fix patching refs to the tmp warmup dir in files generated by optional cache warmers ([@​nicolas-grekas](https://redirect.github.com/nicolas-grekas)) - bug [symfony/symfony#59515](https://redirect.github.com/symfony/symfony/issues/59515) \[FrameworkBundle] Fix wiring ConsoleProfilerListener ([@​nicolas-grekas](https://redirect.github.com/nicolas-grekas)) - bug [symfony/symfony#59136](https://redirect.github.com/symfony/symfony/issues/59136) \[DependencyInjection] Reset env vars with `kernel.reset` (@​faizanakram99) - bug [symfony/symfony#59403](https://redirect.github.com/symfony/symfony/issues/59403) \[FrameworkBundle]\[HttpFoundation] Reset Request's formats using the service resetter ([@​nicolas-grekas](https://redirect.github.com/nicolas-grekas)) - bug [symfony/symfony#59188](https://redirect.github.com/symfony/symfony/issues/59188) \[HttpClient] Fix `reset()` not called on decorated clients (@​HypeMC) </details> <details> <summary>symfony/mailer (symfony/mailer)</summary> ### [`v7.2.3`](https://redirect.github.com/symfony/mailer/compare/v7.2.0...v7.2.3) [Compare Source](https://redirect.github.com/symfony/mailer/compare/v7.2.0...v7.2.3) </details> <details> <summary>symfony/messenger (symfony/messenger)</summary> ### [`v7.2.3`](https://redirect.github.com/symfony/messenger/releases/tag/v7.2.3) [Compare Source](https://redirect.github.com/symfony/messenger/compare/v7.2.1...v7.2.3) **Changelog** (symfony/messenger@v7.2.2...v7.2.3) - bug [symfony/symfony#59513](https://redirect.github.com/symfony/symfony/issues/59513) \[Messenger ] Extract retry delay from nested `RecoverableExceptionInterface` (@​AydinHassan) - bug [symfony/symfony#59508](https://redirect.github.com/symfony/symfony/issues/59508) \[Messenger] \[AMQP] Improve AMQP connection issues ([@​AurelienPillevesse](https://redirect.github.com/AurelienPillevesse)) - bug [symfony/symfony#59352](https://redirect.github.com/symfony/symfony/issues/59352) \[Messenger] Fix `TransportMessageIdStamp` not always added (@​HypeMC) - bug [symfony/symfony#59362](https://redirect.github.com/symfony/symfony/issues/59362) \[Doctrine]\[Messenger] Prevents multiple TransportMessageIdStamp being stored in envelope ([@​rtreffler](https://redirect.github.com/rtreffler)) </details> <details> <summary>symfony/runtime (symfony/runtime)</summary> ### [`v7.2.3`](https://redirect.github.com/symfony/runtime/releases/tag/v7.2.3) [Compare Source](https://redirect.github.com/symfony/runtime/compare/v7.2.0...v7.2.3) **Changelog** (symfony/runtime@v7.2.2...v7.2.3) - no significant changes </details> <details> <summary>symfony/security-bundle (symfony/security-bundle)</summary> ### [`v7.2.3`](https://redirect.github.com/symfony/security-bundle/releases/tag/v7.2.3) [Compare Source](https://redirect.github.com/symfony/security-bundle/compare/v7.2.2...v7.2.3) **Changelog** (symfony/security-bundle@v7.2.2...v7.2.3) - bug [symfony/symfony#59339](https://redirect.github.com/symfony/symfony/issues/59339) \[SecurityBundle] Remove outdated guard from security xsd schema ([@​chalasr](https://redirect.github.com/chalasr)) - bug [symfony/symfony#59342](https://redirect.github.com/symfony/symfony/issues/59342) \[SecurityBundle] Do not pass traceable authenticators to `security.helper` (@​MatTheCat) </details> <details> <summary>symfony/web-profiler-bundle (symfony/web-profiler-bundle)</summary> ### [`v7.2.3`](https://redirect.github.com/symfony/web-profiler-bundle/releases/tag/v7.2.3) [Compare Source](https://redirect.github.com/symfony/web-profiler-bundle/compare/v7.2.2...v7.2.3) **Changelog** (symfony/web-profiler-bundle@v7.2.2...v7.2.3) - bug [symfony/symfony#59292](https://redirect.github.com/symfony/symfony/issues/59292) \[WebProfilerBundle] Fix event delegation on links inside toggles ([@​MatTheCat](https://redirect.github.com/MatTheCat)) - bug [symfony/symfony#59229](https://redirect.github.com/symfony/symfony/issues/59229) \[WebProfilerBundle] fix loading of toolbar stylesheet ([@​alexislefebvre](https://redirect.github.com/alexislefebvre)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **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 these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/Runroom/archetype-symfony). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Hey,
In #57915 the ability to add a retry delay to
RecoverableExceptionInterface
was implemented. However, I noticed while debugging that it in my case the custom delay was not being applied becauseRecoverableExceptionInterface
is wrapped in aHandlerFailedException
in:symfony/src/Symfony/Component/Messenger/Middleware/HandleMessageMiddleware.php
Line 124 in 7a16efe
For detecting whether we should retry we already unwrap
HandlerFailedException
so I implemented a similar method to fetch the delay, simply getting it from the firstRecoverableExceptionInterface
.Maybe we need something more advanced, so your feedback there would be appreciated!