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.
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.
$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.
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database