octava/job-queue-bundle

又是 jms/job-queue-bundle 的一个包装器

安装量: 24,285

依赖者: 0

建议者: 0

安全性: 0

星标: 2

关注者: 2

分支: 1

公开问题: 0

类型:bundle

dev-master / 3.0.x-dev 2017-07-11 16:44 UTC

This package is auto-updated.

Last update: 2024-08-29 04:19:59 UTC


README

又是 jms/job-queue-bundle 的一个包装器。全局目标是与你的项目多服务器架构协同工作。例如,需要为所有服务器运行 cache:clear 命令。在这种情况下,作业队列 指的是 服务器

$manager = $container->get('octava_bundle_job_queue.manager');
$job = new Job('cache:clear');

$jobs = $manager->broadcast($job); //create job for all queues
or
$jobs = $manager->distinct($job); //create job for a default queue 

$manager->flush($jobs);

安装

你可以使用 composer 轻松安装 OctavaJobQueueBundle。只需将以下内容添加到你的 composer.json 文件中:

// composer.json
{
    // ...
    "require": {
        // ...
        "jms/job-queue-bundle": "^2.0-@dev",
        "octava/job-queue-bundle": "3.0.x-dev"
    }
}

将你的服务器列表作为队列列表,并定义一个默认队列。

#parameters.yml
parameters:
    #...
    default_queue: web-server1

#config.yml
jms_job_queue:
    queue_options:
        web-server1: ~
        web-server2: ~
        web-server3: ~

octava_job_queue:
    default_queue: '%default_queue%' #web-server1

然后,你可以通过在存放 composer.json 文件的目录中运行 composer 的 update 命令来安装新的依赖项。

composer update jms/job-queue-bundle octava/job-queue-bundle

现在,Composer 将自动下载所有必需的文件,并为你安装它们。接下来,你需要更新你的 AppKernel.php 文件,并注册新的包。

<?php

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new JMS\JobQueueBundle\JMSJobQueueBundle(),
    new Octava\Bundle\JobQueueBundle\OctavaJobQueueBundle(),
    // ...
);

让你的 app/console 使用 JMSJobQueueBundle 的 Application

// use Symfony\Bundle\FrameworkBundle\Console\Application;
use JMS\JobQueueBundle\Console\Application;

最后,使用控制台命令 ocatava-job-queue:run 执行作业。