Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Asynchrone Kommunikation mit der Symfony Messenger-Komponente

Asynchrone Kommunikation mit der Symfony Messenger-Komponente

Yanick Witschi

October 23, 2023
Tweet

More Decks by Yanick Witschi

Other Decks in Technology

Transcript

  1. Unsere heutige Queue • Use Case • Was heisst asynchron?

    • Grundkonzepte Symfony Messenger • Integration in Contao • Use Case in Contao >= 5.1
  2. Transports • AMQP (Advanced Message Queuing Protocol) • Apache Qpid,

    Apache ActiveMQ, RabbitMQ • Doctrine • Beanstalkd • Redis (Redis Streams) • Amazon SQS • Synchronized (SyncTransport) • … • AmqpSender • AmqpReceiver • DoctrineSender • DoctrineReceiver […]
  3. Messenger ist so viel mehr • Message Envelopes & Stamps

    • Message Events (Subscribers / Listeners) • Middlewares • Failure Transport
  4. Ziele 🎯 • Jede Minute startet ein messenger:consume Command, der

    für eine Minute läuft. Dieser Cronjob darf die anderen Cronjobs nicht blockieren. • Fallback auf synchrone Ausführung, wenn das Cronjob- Framework nicht läuft. • Routing automatisieren, so dass nicht jede Extension die eigene Message routen muss. • Bonus? Autoscaling wenn viele Jobs auf der Queue sind.
  5. Grundkon fi guration • Contao Cronjob-Framework aktivieren • ZipService bleibt

    gleich • CreateAsyncZipMessageHandler bleibt gleich