Návod
Události a fronta
Události v rámci jednoho procesu, zprávy ve frontě a CLI workeři.
Události pro reakce v jednom procesu
Používej EventDispatcherInterface, když jedna akce aplikace potřebuje upozornit listenery ve stejném 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));
}
}Zprávy ve frontě pro navazující práci
Používej QueueBusInterface, když práce může pokračovat mimo aktuální request. Queue message drž jednoduchou a explicitní.
$this->queue->dispatch(
message: new PublishArticleMessage($articleId),
transport: 'database',
queue: 'default',
delaySeconds: 0,
);Spouštěj workery z CLI
Práce s queue workery patří do CLI. Používej frameworkové commandy pro instalaci úložiště a spuštění workerů nad zvoleným transportem.
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database