Symfony vereinfacht zeitgesteuerte Aktionen mit neuer Scheduler-Komponente

in  Zikula Apps , , , , ,

Symfony vereinfacht zeitgesteuerte Aktionen mit neuer Scheduler-Komponente
Mit Symfony 6.3 sind wieder allerhand neue Features hinzugekommen. In diesem Beitrag möchte ich kurz die neue Komponente Scheduler vorstellen, mit welcher der Symfony Messenger um zeitgesteuerte Nachrichten erweitert werden kann. Der Scheduler erlaubt es nämlich, basierend auf einem vordefinierten Zeitplan bestimmte Messages regelmäßig zu triggern. Mit einem Schedule Provider wird ein Zeitplan definiert. Dieser Zeitplan beinhaltet ein oder mehrere Definitionen einer RecurringMessage, wobei jede Definition einen Intervall sowie das dazugehörige Message-Objekt spezifiziert.

Monitoring von Queues mit dem Symfony Messenger

in  Zikula Apps , , , , ,

Monitoring von Queues mit dem Symfony Messenger
Der Symfony Messenger kann über unterschiedliche Transporte mit diversen Queue-Technologien eingesetzt werden, zum Beispiel AMQP, Redis, Amazon SQS oder Doctrine. Um die Messages in den Queues anschauen zu können, stehen je nach Anbieter verschiedene Möglichkeiten zur Verfügung. So bietet etwa RabbitMQ eine Management-UI, mit der unter anderem solche Aufgaben erledigt werden können. Sofern Bedarf entsteht direkt in Symfony zu erfahren, wie voll eine bestimmte Queue ist oder welche Nachrichten sich darin befinden, könnte sich das messenger-monitor-bundle anbieten.

Symfony Messenger - Behandlung erneut fehlgeschlagener Nachrichten

in  Zikula Apps , , , ,

Symfony Messenger - Behandlung erneut fehlgeschlagener Nachrichten
Im Symfony Messenger gibt die Möglichkeit, fehlgeschlagene Nachrichten an eine failed queue zu leiten. In diesem Sammelbecken können diese dann inspiziert und nach Korrektur des zu Grunde liegenden Problems erneut verarbeitet werden. Schlagen sie dabei erneut fehl, landen sie allerdings per Standard nicht wieder in der failed queue, sondern werden verworfen. Dies hat damit zu tun, dass die Nachricht bereits einen SentToFailureTransportStamp besitzt. Möchte man jedoch die Nachricht immer wieder auffangen, bietet es sich an, diesen Stamp einfach vorher wieder zu entfernen.