zlikavac32 / beanstalkd-lib-bundle
zlikavac32/beanstalkd-lib 的捆绑包
Requires
- php: ^7.4
- ext-pcntl: *
- ext-posix: *
- php-ds/php-ds: ^1.2
- symfony/config: ^4.2
- symfony/console: ^4.1
- symfony/dependency-injection: ^4.1
- symfony/http-kernel: ^3.4 || ^4.0
- symfony/var-dumper: ^4.0
- ulrichsg/getopt-php: ^3.3
- zlikavac32/beanstalkd-lib: ^0.5.0
- zlikavac32/nsb-decorators: ^0.1.0
- zlikavac32/php-enum: ^3.0
- zlikavac32/symfony-extras: ^0.2.0
Requires (Dev)
- phpspec/phpspec: ^6.1
- phpunit/phpunit: ^8.5
Suggests
- ext-ds: For better performance with php-ds
README
为 zlikavac32/beanstalkd-lib 提供捆绑包
目录
安装
建议使用 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。它也可以用来运行独立命令。
功能包括
- 列出管道
- 暂停/恢复管道
- 打印统计信息(可选刷新)
- 刷新管道/管道
要在 peek 命令中使用分页器,必须将环境变量 PAGER 设置为分页程序。例如,less 是这样的程序,可以直接使用 PAGER=less bin/console ... 或在某处导出。
对于 less,可以定义额外的环境变量 LESS,该变量描述了 less 参数。例如,可以使用 LESS='-F' PAGER=less bin/console 来跳过分页,如果整个文本可以显示在屏幕上。
在 Docker 中,应使用 -R 来正确显示颜色转义序列。
示例
您可以在 examples 中查看更多带有代码注释的示例。
