Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[Messenger] document reset_on_message transport option#15796

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
javiereguiluz merged 1 commit intosymfony:5.4fromlyrixx:messenger-reset
Oct 4, 2021
Merged
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletionsmessenger.rst
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -696,6 +696,69 @@ of the desired grace period in seconds) in order to perform a graceful shutdown:
[program:x]
stopwaitsecs=20


Stateless Worker
~~~~~~~~~~~~~~~~

PHP was designed to be stateless: everything is lost after processing an HTTP
request. When you run your application in an HTTP context, you may not take care
of services states that may leak services since PHP clean everything after
sending the response.

Since worker run in a CLI context, you need to be careful about services state.
You should avoid to put a state in a service to avoid leaking some information
and/or memory from one message to another message.

Some symfony services leak by nature. For example the monolog fingers crossed
handler. To avoid such situations, you can configure a transport to
automatically reset the container between two messages:

.. configuration-block::

.. code-block:: yaml

# config/packages/messenger.yaml
framework:
messenger:
transports:
async:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
reset_on_message: true

.. code-block:: xml

<!-- config/packages/messenger.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services
https://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony
https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">

<framework:config>
<framework:messenger>
<framework:transport name="async" dsn="%env(MESSENGER_TRANSPORT_DSN)%" reset-on-message="true">
</framework:transport>
</framework:messenger>
</framework:config>
</container>

.. code-block:: php

// config/packages/messenger.php
use Symfony\Config\FrameworkConfig;

return static function (FrameworkConfig $framework) {
$messenger = $framework->messenger();

$messenger->transport('async')
->dsn('%env(MESSENGER_TRANSPORT_DSN)%')
->resetOnMessage(true)
;
};

.. _messenger-retries-failures:

Retries & Failures
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp