gendoria/command-queue-doctrine-bundle

为 Gendoria 命令队列提供的 Doctrine 驱动

0.2.2 2016-11-04 10:05 UTC

This package is auto-updated.

Last update: 2024-08-27 04:24:47 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Downloads Latest Stable Version

用于 gendoria/command-queue-bundle 的 Doctrine 驱动包。

Isobar Poland 合作创建的包。

Isobar Poland

安装

步骤 0:先决条件

⚠️ 在使用此包之前,您应安装和配置 gendoria/command-queue-bundledoctrine/doctrine-bundle

步骤 1:下载包

打开命令行控制台,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本

$ composer require gendoria/command-queue-doctrine-bundle "dev-master"

此命令要求您全局安装了 Composer,如 Composer 文档中的 安装章节 中所述。

步骤 2:启用包

然后,通过将其添加到项目中的 app/AppKernel.php 文件中注册的包列表中来启用包

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...

            new Gendoria\CommandQueueDoctrineDriverBundle\GendoriaCommandQueueDoctrineDriverBundle(),
        );

        // ...
    }

    // ...
}

还应启用并配置 Gendoria 命令队列包

步骤 3:添加包配置

示例包配置如下所示。

gendoria_command_queue_doctrine_driver:
    drivers:
        poolname:
            serializer: '@gendoria_command_queue.serializer.jms'
            doctrine_connection: default

drivers 部分的 poolname 键可以是任何有效的字符串。它允许为命令路由创建单独的驱动器 '池'。

serializer 参数用于指定驱动器使用的序列化驱动程序。在这里,您应使用 jmssymfony 驱动程序,其中 jms 是首选。

一些序列化驱动程序由 Gendoria 命令队列包 提供。

步骤 4:将驱动器添加到命令队列包配置

对于每个您想使用 rabbitmq 驱动程序的命令队列池,您应将其设置为 send_driver。

因此,对于 gendoria_command_queue_doctrine_driver.driver.poolname,您的配置应类似于以下代码。

gendoria_command_queue:
    ...
    pools:
        ...
        poolname:
            send_driver: '@gendoria_command_queue_doctrine_driver.driver.poolname'

步骤 5:创建数据库模式

此包提供 Symfony 命令以创建适当的数据库模式。要运行它,请输入

Symfony 2.x

$ app/console cmq:doctrine:schema-create

Symfony 3.x

$ bin/console cmq:doctrine:schema-create

此命令将检查您的数据库连接和队列表的配置。如果数据库中缺少任何表,它将尝试创建它。该命令不会更改现有表,因此可以安全地多次运行它。

另一方面,它目前不会检查数据库中的模式更改并更新它们。

用法

要开始接收池的命令,您必须启动一个 rabbitmq 包工作进程。

执行此操作的命令如下

Symfony 2.x

$ app/console cmq:worker:run doctrine.poolname

Symfony 3.x

$ bin/console cmq:worker:run doctrine.poolname

其中 poolname 是您在配置的 pools 部分中定义的池名称。

您应使用像 supervisord 这样的服务来控制您的工作进程的运行和重启。