laravel-queued-events maintained by acdphp
Description
Dispatching Events into queues. This is especially useful for distributed systems events using fanout queues.
Author
Last update
2024/01/03 12:01
(dev-main)
License
Downloads
6
Laravel Queued Events
Dispatching Events into queues. This is especially useful for distributed systems events using fanout queues.

Installation
- Install the package
composer require acdphp/laravel-queued-events
Usage
-
Extend
QueuedEventto your event.use Acdphp\QueuedEvents\Events\QueuedEvent; class UserCreatedEvent extends QueuedEvent { // Remove the Dispatchable trait public function __construct(public $object) { } } -
Call
dispatch()UserCreatedEvent::dispatch(['foo' => 'bar']);- You may specify a queue connection and queue:
UserCreatedEvent::dispatch(['foo' => 'bar']) ->onConnection('your-fanout-queue-connection') ->onQueue('your-custom-queue');- Utilities are also available:
dispatchIf(),dispatchUnless()
// Dispatches if $condition is true UserCreatedEvent::dispatchIf($condition, ['foo' => 'bar']); // Dispatches if $condition is false UserCreatedEvent::dispatchUnless($condition, ['foo' => 'bar']); -
Default dispatch methods are prefixed with
internalUserCreatedEvent::internalDispatch(['foo' => 'bar']); UserCreatedEvent::internalDispatchIf(['foo' => 'bar']); UserCreatedEvent::internalDispatchUnless(['foo' => 'bar']);
Configuration
php artisan vendor:publish --tag=queued-events-config
QUEUED_EVENTS_QUEUE_CONNECTION
The default queue connection will be whatever your QUEUE_CONNECTION is set. You may override this by setting QUEUED_EVENTS_QUEUE_CONNECTION
QUEUED_EVENTS_QUEUE
The default queue will be default. You may override this by setting QUEUED_EVENTS_QUEUE
Notes
- Using Laravel helpers, like
event(...)orapp('events')->dispatch(...), will dispatch the job internally. Only use::dispatch,::dispatchIfand::dispatchUnlessto dispatch on queue. - Use Laravel's queued listener if you're only using this in a monolithic application.
License
The MIT License (MIT). Please see License File for more information.