zlikavac32/beanstalkd-lib-bundle

zlikavac32/beanstalkd-lib 的捆绑包

0.3.0 2020-04-11 01:19 UTC

This package is auto-updated.

Last update: 2024-09-11 14:11:45 UTC


README

Build Status

zlikavac32/beanstalkd-lib 提供捆绑包

目录

  1. 安装
  2. 配置
  3. 使用
    1. 管道定义
    2. 运行器定义
    3. 服务器控制器
  4. 示例

安装

建议使用 Composer 进行安装。

composer require zlikavac32/beanstalkd-lib-bundle

必须在 config/bundles.php 中启用此捆绑包。

return [
    /* ... */

    Zlikavac32\BeanstalkdLibBundle\BeanstalkdLibBundle::class => ['all' => true],

    /* ... */
]

接下来,在 config/services/beanstalkd_lib.yaml 中添加 beanstalkd_lib 的默认配置条目。有关更多信息,请参阅配置部分。

beanstalkd_lib: ~

此库使用 zlikavac32/nsb-decorators,它需要在应用程序入口点(如 bin/console)中自定义自动加载器。

use Zlikavac32\NSBDecorators\Proxy;

/* ... */

spl_autoload_register(Proxy::class.'::loadFQN');

目前,由于代理装饰器被评估,容器需求不得内联(container.dumper.inline_class_loader 参数不得存在或设置为 false)。

还需要异步信号。

pcntl_async_signals(true);

配置

默认配置如下

beanstalkd_lib:
    adapters:
        socket: Zlikavac32\BeanstalkdLib\Adapter\PHP\Socket\NativePHPSocket
        yaml_parser: Zlikavac32\BeanstalkdLib\Adapter\Symfony\Yaml\SymfonyYamlParser
    server:
        host: 127.0.0.1
        port: 11300

可以实施自定义适配器,以更好地与现有软件集成。

使用

本节解释了如何使用此捆绑包。

管道定义

要使用 beanstalkd 库客户端,必须配置每个管理的管道。

tube.domain_tube: # keys value itself is not important to the bundle
    class: Zlikavac32\BeanstalkdLib\Client\TubeConfiguration\StaticTubeConfiguration
    arguments:
        $defaultDelay: 0
        $defaultPriority: 1024
        $defaultTimeToRun: 60
        $defaultTubePauseDelay: 86400
        $serializer: '@DomainSerializer'
    tags:
        - { name: tube_configuration, tube: brute_force_hash }

标签 tube_configuration 收集管道配置并将它们与客户端链接。

可选地,也可以使用 linker 标签与序列化器链接,如在 examples/full/container.yaml 中所示。

运行器定义

要定义管道运行器,我们可以使用 job_runner 标签。此标签收集运行器并将它们与作业调度器链接。

Foo\Runner\SomeRunnerClass:
    tags:
        - { name: job_runner, tube: tube_for_this_runner }

可以通过手动或通过 decorator 标签应用额外的装饰器,如在 examples/full/container.yaml 中所示。

要运行现有运行器,请使用 bin/console worker:run

服务器控制器

作为客户端提供简单的 REPL 控制器为 bin/console worker:controller。它也可以用来运行独立命令。

Server controller demo

功能包括

  • 列出管道
  • 暂停/恢复管道
  • 打印统计信息(可选刷新)
  • 刷新管道/管道

要在 peek 命令中使用分页器,必须将环境变量 PAGER 设置为分页程序。例如,less 是这样的程序,可以直接使用 PAGER=less bin/console ... 或在某处导出。

对于 less,可以定义额外的环境变量 LESS,该变量描述了 less 参数。例如,可以使用 LESS='-F' PAGER=less bin/console 来跳过分页,如果整个文本可以显示在屏幕上。

在 Docker 中,应使用 -R 来正确显示颜色转义序列。

示例

您可以在 examples 中查看更多带有代码注释的示例。