desarrolla2 / async-event-dispatcher-bundle
0.0.1
2019-09-27 08:12 UTC
This package is auto-updated.
Last update: 2024-09-21 16:59:02 UTC
README
AsyncEventDispatcherBundle
代表在 Symfony 中实现异步消息管理的简单方式!
安装
下载 Bundle
打开命令行控制台,进入您的项目目录,然后执行以下命令以下载此 bundle 的最新稳定版本
$ composer require desarrolla2/async-event-dispatcher-bundle
此命令要求您已全局安装 Composer,如 Composer 文档中的 安装章节
所述。
启用 Bundle
然后,通过在您的项目中的 app/AppKernel.php
文件中添加以下行来启用此 bundle
// app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Desarrolla2\AsyncEventDispatcherBundle\AsyncEventDispatcherBundle(), ); // ... } // ... }
配置 Bundle
您需要在您的 config.yml 中添加类似以下内容
async_event_dispatcher: num_messages_per_execution: 1 maximum_num_of_consumers: 4
创建您的第一个异步消息
一个创建示例消息的控制器的样子如下
<?php namespace CoreBundle\Controller; use CoreBundle\EventDispatcher\AsyncEvents; use Desarrolla2\AsyncEventDispatcherBundle\Event\Event; class MessageController extends AbstractController { public function createAction() { $manager = $this->container->get('desarrolla2.async_event_dispatcher'); $manager->dispatch( AsyncEvents::NAME_EVENT, new Event(['date' => (new \DateTime())->format('Ymd')]) ); } }
消费我们消息的类的样子如下
<?php namespace CoreBundle\EventSubscriber; use CoreBundle\EventDispatcher\AsyncEvents; use Desarrolla2\AsyncEventDispatcherBundle\Event\Event; class ExampleSubscriber extends AbstractEventSubscriber { public static function getSubscribedEvents() { return [ AsyncEvents::NAME_EVENT => 'onUpdateRequested', ]; } public function onUpdateRequested(Event $event) { /* CODE */ } }
消费我们消息的类的配置
services: _defaults: { public: true } core.event_subscriber.example_subscriber: class: 'CoreBundle\EventSubscriber\ExampleSubscriber' arguments: - '@service_container' tags: - { name: 'kernel.event_subscriber' }