ronanchilvers/silex-queue-beanstalkd

使用 beanstalkd 作为后端的 silex 简单队列机制

1.1.1 2018-10-10 08:03 UTC

This package is auto-updated.

Last update: 2024-09-10 20:55:31 UTC


README

这是一个使用 SilexBeanstalkd 作为后端实现的简单队列机制。

安装

使用 composer 进行安装

composer require ronanchilvers\silex-queue-beanstalkd

我们假设您已经在某处运行了一个可访问的 Beanstalkd 实例,并且知道其网络地址。

配置

要使用队列服务,您需要按如下方式注册提供者

$app->register(new Ronanchilvers\Silex\Queue\QueueProvider());

默认情况下,这假设 Beanstalkd 在本地的默认端口(11300)上运行。

有几个配置指令可以帮助您使队列服务正常工作。您可以使用正常的 Silex 方式传递这些指令,如下所示

$app->register(new Ronanchilvers\Silex\Queue\QueueProvider(), [
    'queue.options' => [
        'host' => '1.2.3.4'
    ]
]);

可用的配置键有

  • host : Beanstalkd 主机(默认 localhost)
  • port : Beanstalkd 端口(默认 11300)
  • timeout : Beanstalkd 连接的超时时间(默认 2 秒)。此选项直接传递给 Pheanstalk。
  • persistent : 是否使用持久连接到 Beanstalkd(默认 false)。此选项直接传递给 Pheanstalk。
  • default.queue : 默认队列用于推送/拉取。在发布/消费时可以覆盖队列。
  • max.iterations : 使用队列:消费 CLI 命令时,工作器在退出前执行的最大迭代次数

消费命令

提供了一个用于与 symfony/console 一起使用的简单消费命令。该命令需要 knplabs/console-service-provider 包,因为它需要访问 Application 对象。要使用它,您可以进行如下操作

$console->add(new Ronanchilvers\Silex\Queue\Console\Command\ConsumeCommand());

这将向控制台应用程序添加一个 queue:消费 命令。