Guida
Eventi e queue
Eventi nello stesso processo, messaggi in queue e worker CLI.
Eventi per reazioni nello stesso processo
Usa EventDispatcherInterface quando un’azione dell’applicazione deve notificare listener nello stesso 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 message per il lavoro successivo
Usa QueueBusInterface quando il lavoro può continuare fuori dalla request corrente. Mantieni le queue message piccole ed esplicite.
$this->queue->dispatch(
message: new PublishArticleMessage($articleId),
transport: 'database',
queue: 'default',
delaySeconds: 0,
);Esegui i worker dalla CLI
Il lavoro dei queue worker appartiene alla CLI. Usa i command del framework per installare lo storage ed eseguire i worker sul transport scelto.
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database