Przewodnik
Zdarzenia i kolejka
Zdarzenia w jednym procesie, wiadomości w kolejce i workery CLI.
Zdarzenia dla reakcji w tym samym procesie
Używaj EventDispatcherInterface, gdy jedna akcja aplikacji ma powiadomić listenery w tym samym 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));
}
}Wiadomości kolejki dla dalszej pracy
Używaj QueueBusInterface, gdy praca może być kontynuowana poza bieżącym requestem. Queue message utrzymuj prostą i jawną.
$this->queue->dispatch(
message: new PublishArticleMessage($articleId),
transport: 'database',
queue: 'default',
delaySeconds: 0,
);Uruchamiaj workery z CLI
Obsługa workerów kolejki należy do CLI. Używaj commandów frameworka do instalacji storage i uruchamiania workerów na wybranym transporcie.
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database