shredio / messenger
1.0.3
2025-01-27 14:11 UTC
Requires
- php: >=8.2
Requires (Dev)
- doctrine/orm: ^3.3
- phpstan/phpstan: ^2.1
- symfony/console: ^7.2
- symfony/event-dispatcher: ^7.2
- symfony/messenger: ^7.2
This package is auto-updated.
Last update: 2025-01-27 21:42:37 UTC
README
Nette
services: - Shredio\Messenger\Command\ConsumeCronMessagesCommand( @messenger.transport.container, @messenger.bus.routable, @messenger.event.dispatcher, @messenger.logger.logger ) - Shredio\Messenger\Doctrine\RootEntityMessageDispatcher - Shredio\Messenger\Bus\DefaultMessengerBusAccessor - Shredio\Messenger\Bus\DefaultRoutableBus - Shredio\Messenger\DefaultMessageDispatcher('root', ['stocks']) messenger: bus: commandBus: middlewares: - Shredio\Messenger\Middleware\DiscardableMessageMiddleware(@messenger.logger.logger)
Usage
Command Message:
use Shredio\Messenger\Message\CommandMessage; class MyCommandMessage implements CommandMessage { }
Event Message:
use Shredio\Messenger\Message\EventMessage; class MyEventMessage implements EventMessage { }
Query Message:
use Shredio\Messenger\Message\QueryMessage; class MyQueryMessage implements QueryMessage { }
By default, all messages are synchronous and private. If you want to make a message asynchronous, you can do so by implementing the AsynchronousMessage
interface.
use Shredio\Messenger\Message\AsynchronousMessage; class MyAsyncCommandMessage implements CommandMessage, AsynchronousMessage { }
If you want to make a message public, you can do so by implementing the PublicMessage
interface.
use Shredio\Messenger\Message\PublicMessage; class MyPublicCommandMessage implements CommandMessage, PublicMessage { }
Prioritization
You can prioritize messages by implementing the PriorityAwareMessage
interface.
use Shredio\Messenger\Message\PriorityAwareMessage; class MyPriorityCommandMessage implements CommandMessage, PriorityAwareMessage { public function getPriority(): MessagePriority { return MessagePriority::Important; } }