Leitfaden

Events & Queue

Events innerhalb eines Prozesses, Nachrichten in der Queue und CLI-Worker.

Events für Reaktionen im selben Prozess

Verwende EventDispatcherInterface, wenn eine Aktion der Anwendung Listener im selben Runtime-Prozess benachrichtigen soll.

example.php
use Lemonade\Framework\Event\EventDispatcherInterface;

final class PublishArticle
{
    public function __construct(
        private readonly EventDispatcherInterface $events,
    ) {}

    public function handle(int $articleId): void
    {
        $this->events->dispatch(new ArticlePublishedEvent($articleId));
    }
}

Queue Messages für Folgearbeit

Verwende QueueBusInterface, wenn Arbeit außerhalb des aktuellen Requests fortgesetzt werden kann. Halte Queue Messages klein und explizit.

example.php
$this->queue->dispatch(
    message: new PublishArticleMessage($articleId),
    transport: 'database',
    queue: 'default',
    delaySeconds: 0,
);

Worker über die CLI starten

Queue-Worker gehören zur CLI. Nutze Framework-Commands, um Storage zu installieren und Worker mit dem gewählten Transport zu starten.

example.php
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database