Nuevo en Symfony 4.4: Nuevo middleware para el componente Messenger
En el componente Messenger, se usa el middleware para configurar lo que sucede cuando se envía un mensaje al bus de mensajes. En Symfony 4.4 hemos añadido un nuevo middleware para actualizar el entity manager de Doctrine después de consumir los mensajes.
Para activarlo, añade messenger.middleware.doctrine_clear_entity_manager
al
middleware de tus buses:
# config/packages/messenger.yaml framework: messenger: buses: messenger.bus.default: default_middleware: false middleware: # ... - 'messenger.middleware.doctrine_clear_entity_manager'
La primera ventaja de este middleware es que evita un consumo de memoria excesivo cuando se procesan muchos mensajes en un proceso de larga duración. La segunda ventaja es que evita efectos secundarios difíciles de depurar. Por ejemplo, en el caso de que un usuario trate de recuperar su cuenta (mediante el envío asíncrono de emails via Messenger y AMQP), si se actualiza la dirección de email después del primer intento, el segundo email se enviará a la anterior dirección de email. Al usar este middleware se soluciona este problema.
Esta funcionalidad fue contribuida por Konstantin Myakshin en el pull request #31334.
Fuente: New in Symfony 4.4: Messenger Middleware to Clear Doctrine Entity Manager
Comentarios
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.