Guía
Eventos y cola
Eventos dentro de un proceso, mensajes en cola y workers CLI.
Eventos para reacciones dentro del mismo proceso
Usa EventDispatcherInterface cuando una acción de la aplicación necesite notificar listeners en el mismo 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 messages para trabajo posterior
Usa QueueBusInterface cuando el trabajo pueda continuar fuera del request actual. Mantén las queue messages pequeñas y explícitas.
$this->queue->dispatch(
message: new PublishArticleMessage($articleId),
transport: 'database',
queue: 'default',
delaySeconds: 0,
);Ejecuta workers desde la CLI
El trabajo con queue workers pertenece a la CLI. Usa los commands del framework para instalar el storage y ejecutar workers sobre el transporte elegido.
vendor/bin/lemonade queue:install
vendor/bin/lemonade queue:work default database