Guide
Événements et queue
Événements dans un même processus, messages en queue et workers CLI.
Événements pour les réactions dans le même processus
Utilisez EventDispatcherInterface lorsqu’une action applicative doit avertir des listeners dans le même runtime.
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 pour le travail différé
Utilisez QueueBusInterface lorsque le travail peut continuer hors de la request actuelle. Gardez les queue messages petits et explicites.
$this->queue->dispatch(
message: new PublishArticleMessage($articleId),
transport: 'database',
queue: 'default',
delaySeconds: 0,
);Exécuter les workers depuis la CLI
Le travail des queue workers appartient à la CLI. Utilisez les commandes du framework pour installer le storage et exécuter les workers sur le transport choisi.
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database