artox-lab/clarc-message-bus-bundle
Composer 安装命令:
composer require artox-lab/clarc-message-bus-bundle
包简介
Message bus adapter for Artox Lab CLARC bundle
README 文档
README
Installation
Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
$ composer require artox-lab/clarc-message-bus-bundle
Applications that don't use Symfony Flex
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require artox-lab/clarc-message-bus-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:
// config/bundles.php return [ // ... ArtoxLab\Bundle\ClarcMessageBusBundle\ArtoxLabClarcMessageBusBundle::class => ['all' => true], ];
Step 3: Configuration
Configure bundle
# config/packages/artox_lab_clarc_message_bus.yaml artox_lab_clarc_message_bus: bus: middleware: add_redelivery_stamp_middleware: retry_count: 10
Usage
Step 1: Create your event lib based on abstract-bus-event-message
Add your event lib in project via composer
Step 2: Configuring Services in the Container
Bundle uses abstract-bus-event-message as dependency. You need to configure the services for the interfaces:
# config/services.yaml app_message_bus.producer.bus_event_message_factory: class: YourLib\BusEventMessage\V1\BusMessageFactory ArtoxLab\AbstractBusEventMessage\V1\BusMessageFactoryInterface: '@app_message_bus.producer.bus_event_message_factory' app_message_bus.producer.bus_event_message: class: YourLib\BusEventMessage\V1\BusMessage ArtoxLab\AbstractBusEventMessage\V1\BusMessageInterface: '@app_message_bus.producer.bus_event_message' app_message_bus.producer.bus_event: class: YourLib\BusEventMessage\V1\Events\BaseEvent ArtoxLab\AbstractBusEventMessage\V1\Events\EventInterface: '@app_message_bus.producer.bus_event'
Step 3: Configure symfony/messenger
# config/packages/messenger.yaml framework: messenger: buses: message.bus: middleware: - validation - artox_lab_clarc_message_bus.middleware.add_redelivery_stamp_middleware transports: example: dsn: "%env(RABBITMQ_TRANSPORT_DSN)%" serializer: artox_lab_clarc_message_bus.transport.bus_serializer retry_strategy: delay: 10000 max_retries: 10 multiplier: 1 options: exchange: name: "events.example" type: "topic" flags: 4 queues: events: binding_keys: [ '#' ] routing: 'YourLib\BusEventMessage\V1\Events\ExampleEvent': [ example ]
Exchange type "topic"
If exchange type "topic" then symfony don't create queues automatically. Configure RabbitMqBundle
# config/packages/old_sound_rabbit_mq.yaml old_sound_rabbit_mq: connections: default: url: '%env(RABBITMQ_TRANSPORT_DSN)%' producers: example: connection: default exchange_options: { name: 'events.example', type: topic, auto_delete: true, durable: true } service_alias: example
Open a command console, enter your project directory and execute the following commands to create queues and setup transports:
$ php bin/console rabbitmq:setup-fabric $ php bin/console messenger:setup-transports
Examples
统计信息
- 总下载量: 1.22k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-01-28