abc / job-worker-bundle
用于处理来自AbcJobServerBundle的作业的Symfony
0.4.1
2020-12-01 20:08 UTC
Requires
- php: ^7.2
- abc/job: ^0.4|dev-master
- symfony/framework-bundle: ^4.3|^5.1
Requires (Dev)
- ext-json: *
- enqueue/enqueue-bundle: ^0.10
- phpunit/phpunit: ^8.0|^9.0
- symfony/browser-kit: ^4.3|^5.1
- symfony/console: ^4.3|^5.1
- symfony/yaml: ^4.3|^5.1
This package is not auto-updated.
Last update: 2024-09-18 14:46:44 UTC
README
一个用于使用php-enqueue作为传输层的symfony扩展包,用于处理由AbcJobServerBundle管理的作业。
注意:此项目仍处于实验阶段!
演示
您可以在这里找到演示。
安装
composer require abc/job-worker-bundle
配置参考
abc_job_worker: server_baseUrl: # Required (e.g. http://domain.tld/api/ default_queue: default default_replyTo: reply
入门指南
先决条件
- 已安装AbcJobServerBundle的symfony应用程序
- Enqueue传输配置与AbcJobServerBundle配置匹配
创建作业处理器
作业处理器必须实现ProcessorInterface
接口。
interface ProcessorInterface { public function process(?string $input, Context $context); }
注册作业处理器
作业处理器必须使用标签abc.job.processor
进行注册。您必须定义标签属性jobName
,它定义了必须使用此处理器处理的作业名称。
App\Job\SayHelloProcessor: tags: - { name: 'abc.job.processor', jobName: 'say_hello'}
配置作业路由
必须为每个作业配置一个路由。路由包含三个参数:name
指定作业名称,queue
指定作业发送到的队列名称,replyTo
指定作业回复发送到的队列名称。
路由由实现RouteProviderInterface
接口的类进行配置。
<?php namespace App; use Abc\Job\RouteProviderInterface; class JobRoutes implements RouteProviderInterface { public static function getRoutes() { return [ [ 'name' => 'job_A', 'queue' => 'queue_A', 'replyTo' => 'reply_default', ], [ 'name' => 'job_B', 'queue' => 'queue_B', 'replyTo' => 'reply_default', ], [ 'name' => 'job_C', 'queue' => 'queue_B', 'replyTo' => 'reply_C', ], ]; } }
必须使用标签abc.job.route_provider
注册路由提供者。
App\JobRoutes: tags: - { name: 'abc.job.route_provider'}
命令
命令abc:job:process
命令abc:job:process
处理一个或多个特定的作业,必须指定作业名称。您可以提供单个作业名称或作业名称数组作为参数。
bin/console abc:job:process --help
命令abc:queue:process
命令abc:queue:process
处理一个或多个队列的作业。它将处理所有已注册的作业。
bin/console abc:queue:process --help
您可以通过提供单个队列名称或队列名称数组作为参数。
命令abc:routes:register
命令abc:routes:register
在服务器上注册由路由提供者定义的路由。现有路由将被覆盖但不会删除。
bin/console abc:routes:register --help
命令abc:broker:setup
命令abc:broker:setup
在代理上声明所有注册路由的队列。
bin/console abc:broker:setup --help
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。