lamoda/tactician-queue-bundle

此包已被弃用,不再维护。未建议替代包。

为 lamoda/tactician-queue 库提供的 Symfony 扩展包

1.1.0 2020-02-06 12:05 UTC

This package is auto-updated.

Last update: 2023-06-06 20:00:33 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Build Status

库提供中间件,允许您通过 Tactician 以异步或延迟方式执行命令

安装

Composer

composer require lamoda/tactician-queue-bundle

配置

在使用前,请阅读 lamoda/queue-bundle 的文档

扩展包为 tactician 集成提供特殊中间件。此中间件增加了异步命令执行和带计划的事件的支持。

要启用此功能,请执行以下操作

  1. 添加额外配置
    lamoda_tactician_queue:
        tactician_id: tactician.commandbus # Command bus service id
        command_serializer_id: lamoda_tactician_queue.default_command_serializer # Symfony serializer
    
  2. 添加至少一个策略,该策略将命令转换为工作项
    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 }
  3. 将队列中间件添加到 tactician 中间件列表中
    tactician:
        commandbus:
            default:
                middleware:
                    - tactician.middleware.locking
                    - lamoda_tactician_queue.middleware # Here it is
                    - tactician.middleware.command_handler
  4. 现在每次调用
    <?php
    $commandBus->handle(new My\SecondCommand());
    此命令将被发布到队列中。