vivait/worker-command-bundle

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

集成 Pheanstalk 和 endless 命令,允许轻松创建自定义工作进程。

1.0 2015-05-06 09:24 UTC

This package is not auto-updated.

Last update: 2020-01-20 09:03:13 UTC


README

集成 Pheanstalkendless commands,以允许轻松创建可托管的自定义 beanstalk 工作进程。

安装

将 "vivait/worker-command-bundle": "dev-master" 添加到您的 composer.json 中,并运行 composer update

更新您的 AppKernel

public function registerBundles()
{
    $bundles = array(
        ...
        new Vivait\WorkerCommandBundle\VivaitWorkerCommandBundle(),
        new Leezy\PheanstalkBundle\LeezyPheanstalkBundle(),
}

配置 LeezyPheanstalkBundle

基本用法

简单地扩展 Vivait\WorkerCommandBundle\Command\WorkerCommand 并实现其抽象方法。

class EmailWorkerCommand extends WorkerCommand
{

    protected function performAction($payload, InputInterface $input, OutputInterface $output)
    {
        $output->writeln($payload);
    }

    protected function setCommandNamespace()
    {
        return "vivait:queue:worker:email";
    }
}

执行一些工作

每当有新的作业可用时,将调用 performAction() 方法。应使用此方法执行工作进程的任务。

使用 setCommandNamespace() 设置命令的名称。

运行命令

只要此类位于您的应用程序的 Command 目录中,Symfony 应该会自动检测它。运行 php app/console 查看可用命令列表。

要在终端中运行上述类中定义的命令,请运行 php app/console vivait:queue:worker:email

参数

上述命令必须提供 tube 参数,例如,php app/console vivait:queue:worker:email "vivait.myapp.email"

可选地,可以设置 ignore 参数以指定忽略的 tube。

选项

--timeout 将设置命令运行的间隔,默认设置为 5 秒。

例如,php app/console vivait:queue:worker:email -t 0.5

异常处理

WorkerCommand 捕获任何 \Exception。内部,WorkerCommand 将错误消息和代码打印到控制台,但通过实现 handleException(),可以进一步与异常交互。