Návod
Udalosti a fronta
Udalosti v rámci jedného procesu, správy vo fronte a CLI workery.
Udalosti pre reakcie v jednom procese
Používaj EventDispatcherInterface, keď jedna akcia aplikácie potrebuje upozorniť listenerov v rovnakom 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));
}
}Správy vo fronte pre nadväzujúcu prácu
Používaj QueueBusInterface, keď práca môže pokračovať mimo aktuálneho requestu. Queue message drž jednoduchú a explicitnú.
$this->queue->dispatch(
message: new PublishArticleMessage($articleId),
transport: 'database',
queue: 'default',
delaySeconds: 0,
);Spúšťaj workery z CLI
Práca s queue workermi patrí do CLI. Používaj frameworkové commandy na inštaláciu úložiska a spustenie workerov nad zvoleným transportom.
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database