Download the PHP package hyperf/xxl-job-incubator without Composer
On this page you can find all versions of the php package hyperf/xxl-job-incubator. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download hyperf/xxl-job-incubator
More information about hyperf/xxl-job-incubator
Files in hyperf/xxl-job-incubator
Package xxl-job-incubator
Short Description php hyperf xxljob
License MIT
Homepage https://hyperf.io
Informations about the package xxl-job-incubator
xxl-job-incubator
此为 xxl-job 的 PHP 版本的任务执行器(Job Executor),特别适配于 Hyperf 框架,其余框架尚未验证适配性
优点
- 分布式任务调度平台
- 任务可以随时关闭与开启
- 日志可通过服务端查看
使用须知
- xxl-job 服务端版本需 >= 2.2.0
- 阻塞处理策略:单机串行(未实现),任务默认并行执行; 对于长时间的任务,建议使用
丢弃后续调度
安装
使用
配置
配置文件: config/autoload/xxl_job.php
如文件不存在可通过以下命令发布配置文件
Bean 模式(类形式)
Bean 模式任务,支持基于类的开发方式,每个任务对应一个 PHP 类
优点:与 Hyperf 整合性好,易于管理 缺点:任务运行于单独的,协程任务代码不能存在阻塞 IO,每个 Job 需占用一个类文件,Job 逻辑简单但数量过多时过于累赘
swoole默认使用命令行模式执行,swow默认使用协程模式执行 如需要手动指定模式,执行器名称后缀为process(忽略大小写),使用命令行模式执行;后缀为coroutine(忽略大小写),使用协程执行 swoole使用协程模式,无法使用:
关闭终止任务
|以及阻塞处理策略
|任务超时
编写 Job 类
编写一个实现 Hyperf\XxlJob\Handler\JobHandlerInterface
的 Job 类,并为 Job 类添加注解 #[XxlJob('value')]
,注解的 value 值对应的是调度中心新建任务的 JobHandler 属性的值,如下所示:
Tips: 可直接继承
Hyperf\XxlJob\Handler\AbstractJobHandler
得到对应的实现
在调度中心新建调度任务
对新建的任务进行参数配置,运行模式选中 BEAN模式
,JobHandler 属性填写注解 #[XxlJob]
中定义 value 值
Bean 模式(方法形式)
基于方法的开发方式,每个任务对应一个方法
优点:相对比 Bean(类形式)
更加灵活
缺点:数量多时更难管理,代码复杂度高时多个任务间容易造成耦合度过高
编写 Job 方法
对任意类中的 Public 方法增加 #[XxlJob('value')]
注解,注解的 value 值对应的是调度中心新建任务的 JobHandler 属性的值
在调度中心新建调度任务
对新建的任务进行参数配置,运行模式选中 BEAN模式
,JobHandler 属性填写注解 #[XxlJob]
中定义 value 值
使用案例
Glue 脚本模式
该模式下,可支持任务以将源码方式维护在调度中心,支持通过 XXL-JOB 提供的 Web IDE 在线编写代码和在线更新,因此不需要指定固定的 JobHandler
脚本模式支持多种脚本语言编写 Job 代码,包括 PHP、Python、NodeJs、Shell、PowerShell,在 XXL-JOB 新建任务时选择对应的模式即可,例如 GLUE(PHP)
即代表 PHP 语言的脚本模式,所有脚本模式的任务会以一个独立的进程来运行,故在 PHP 下也可支持编写存在 IO 阻塞的代码
要使用
Glue 脚本模式
必须配置 Access Token 方可启用
优点:极度灵活,可以实现不重启新增和修改 Job 代码,支持多种脚本语言,独立进程
缺点:大批量任务时容易造成进程数过多,脚本代码由 XXL-JOB 远程编辑发放容易导致安全问题,Job 代码可对 Executor 所在服务器环境进行与启动 Hyperf 应用的权限相同的操作
安装xxl-job-admin(2.4.0版本)
初始化“调度数据库”
docker安装
替换:数据库地址/账号/密码和accessToken
引用
关于 XXL-JOB 更多的使用细节可参考 XXL-JOB 官方文档
All versions of xxl-job-incubator with dependencies
guzzlehttp/guzzle Version ^6.3|^7.0
hyperf/di Version ~3.0.0|~3.1.0
hyperf/event Version ~3.0.0|~3.1.0
hyperf/framework Version ~3.0.0|~3.1.0
hyperf/http-server Version ~3.0.0|~3.1.0
hyperf/logger Version ~3.0.0|~3.1.0
hyperf/command Version ~3.0.0|~3.1.0
jetbrains/phpstorm-attributes Version ^1.0
symfony/process Version ^5.4 || ^6.0 || ^7.0