[BridgeDoctrineMessenger] Doctrine ping connection middleware#31061
Conversation
src/Symfony/Bridge/Doctrine/Messenger/DoctrinePingConnectionMiddleware.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/Messenger/DoctrinePingConnectionMiddleware.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/Messenger/DoctrinePingConnectionMiddleware.php
Outdated
Show resolved
Hide resolved
452dba4 to
11c4a4b
Compare
src/Symfony/Bridge/Doctrine/Messenger/DoctrinePingConnectionMiddleware.php
Outdated
Show resolved
Hide resolved
nicolas-grekas
left a comment
There was a problem hiding this comment.
CS-related comments only :)
src/Symfony/Bridge/Doctrine/Messenger/DoctrinePingConnectionMiddleware.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrinePingConnectionMiddlewareTest.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/Tests/Messenger/DoctrinePingConnectionMiddlewareTest.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/Messenger/DoctrinePingConnectionMiddleware.php
Outdated
Show resolved
Hide resolved
58e0480 to
5fa2957
Compare
sroze
left a comment
There was a problem hiding this comment.
It's a good idea. One simple comment.
Also, can you open a WIP pull-request on the DoctrineBundle as well so the service messenger.middleware.doctrine_ping_connection would be available by default? Maybe we should provide two services with the different values of forceCloseConnection?
| { | ||
| private $managerRegistry; | ||
| private $entityManagerName; | ||
| private $forceCloseConnection = false; |
There was a problem hiding this comment.
You don't need this default value as it's given by the constructor.
There was a problem hiding this comment.
As you said, I think that creating 2 separated middlewares is better. Is it ok?
|
As long as it’s clear in your documentation PR I think it’s okay 👍 |
|
@insidestyles what I meant is only one class here but two service definitions within the DoctrineBundle where you need to register the services (in the |
I understood. Should I revert the last commit? I also created doctrine/DoctrineBundle#956 |
|
@sroze what Symfony version are you targeting with this? Is this still eligible for 4.3 or will this land in 4.4 by default? |
|
I will stop merging new features for 4.3 probably at the end of the week. But I would really like this one to be part of 4.3 :) We need some approvals. |
sroze
left a comment
There was a problem hiding this comment.
Can you add a note in the CHANGELOG as well as the @experimental in 4.3 annotation on the two classes, please?
@sroze Done. |
9dd9276 to
6fd9f6a
Compare
|
Thank you @insidestyles. |
…dleware (insidestyles) This PR was squashed before being merged into the 4.3-dev branch (closes #31061). Discussion ---------- [BridgeDoctrineMessenger] Doctrine ping connection middleware | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | BC breaks? | no <!-- see https://symfony.com/bc --> | Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tests pass? | yes <!-- please add some, will be required by reviewers --> | Fixed tickets | #... <!-- #-prefixed issue number(s), if any --> | License | MIT | Doc PR | symfony/symfony-docs#... <!-- required for new features --> - Check and reconnect if mysql has gone away: <service id="messenger.middleware.doctrine_ping_connection" class="Symfony\Bridge\Doctrine\Messenger\DoctrinePingConnectionMiddleware" public="false"> <argument type="service" id="doctrine" /> </service> - Close and save opened connections (not active worker): <service id="messenger.middleware.doctrine_close_connection" class="Symfony\Bridge\Doctrine\Messenger\DoctrineCloseConnectionMiddleware" public="false"> <argument type="service" id="doctrine" /> </service> Commits ------- 6fd9f6a [BridgeDoctrineMessenger] Doctrine ping connection middleware
Check and reconnect if mysql has gone away:
Close and save opened connections (not active worker):