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.

example.php
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ú.

example.php
$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.

example.php
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database