Library provides middleware that gives you ability to execute commands via Tactician in async or delayed way.
composer require lamoda/tactician-queue
Before usage, please documentation for lamoda/queue-bundle
Bundle provides special middleware for tactician integration. This middleware add supports of async command execution, event with scheduling.
To enable this feature do the following:
- Add extra configuration:
lamoda_tactician_queue: tactician_id: tactician.commandbus # Command bus service id
- Add at least one strategy, that will convert commands into jobs:
services: # ... several_domain_commands_strategy: class: Lamoda\TacticianQueue\Middleware\QueueProducerStrategy\CommandsListToCommandJobStrategy arguments: - async_command_queue - async_command_exchange - [ My\AsyncCommandInterface, My\SecondCommand ] - 15 # optional delay tags: - { name: tactician_queue.job_producing_strategy }
- Add queue middleware to the list of tactician middlewares:
tactician: commandbus: default: middleware: - tactician.middleware.locking - lamoda_tactician_queue.middleware # Here it is - tactician.middleware.command_handler
- Now every time you call
this command will be published into the queue.
<?php $commandBus->handle(new My\SecondCommand());