Download the PHP package kukewang/hyperf_xxl_job without Composer
On this page you can find all versions of the php package kukewang/hyperf_xxl_job. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kukewang/hyperf_xxl_job
More information about kukewang/hyperf_xxl_job
Files in kukewang/hyperf_xxl_job
Package hyperf_xxl_job
Short Description php hyperf xxljob
License MIT
Homepage https://hyperf.io
Informations about the package hyperf_xxl_job
[toc]
hyperf_xxl_job
此为 xxl-job 的 PHP 版本的任务执行器(Job Executor),特别适配于 Hyperf 框架,其余框架尚未验证适配性
此版本根据 hyperf/xxl-job-incubator 改造而来
优点
- 分布式任务调度平台
- 任务可以随时关闭与开启
- 日志可通过服务端查看
使用须知
- xxl-job 服务端版本需 >= 2.2.0
- 无法取消正在执行的任务
Bean 模式(类形式)
Bean 模式任务,支持基于类的开发方式,每个任务对应一个 PHP 类
优点:与 Hyperf 整合性好,易于管理
缺点:任务运行于单独的,协程任务代码不能存在阻塞 IO,每个 Job 需占用一个类文件,Job 逻辑简单但数量过多时过于累赘
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 应用的权限相同的操作
Hyperf 中使用
安装 kukewang/hyperf_xxl_job
-
composer地址,当前环境中需要有 git 环境,组件的依赖包需要使用 git 拉取
composer require kukewang/hyperf_xxl_job
-
发布配置文件
php bin/hyperf.php vendor:publish kukewang/hyperf_xxl_job
-
配置文件:
config/autoload/xxl_job.php
- .env 文件
Hyperf 框架创建任务类
- 在 Hyperf 框架中创建任务类,并继承
use Hyperf\XxlJob\Handler\AbstractJobHandler
- 实现
execute
方法,业务逻辑在此方法中编写 - 添加注解
@XxlJob(jobHandler="testJobHandler",init="init",destroy="destroy")
- jobHandler 调度中心创建任务的 JobHandler
- init 执行
execute
方法前的初始化方法,方法名自定义 - destory 执行
execute
方法后执行的方法,方法名自定义
- jobHandler 调度中心创建任务的 JobHandler
调度中心配置
-
创建执行器
注册方式:自动注册
-
创建任务
- 执行器 根据需要添加
- 填写 cron 规则
- 运行模式选择
BEAN
- JobHandler 自定义
-
根据创建的 执行器 和 任务 填写 Hyperf 配置
- .env
-
任务类
引用
关于 XXL-JOB 更多的使用细节可参考 XXL-JOB 官方文档
All versions of hyperf_xxl_job with dependencies
guzzlehttp/guzzle Version ^6.3|^7.0
hyperf/di Version ^2.2
hyperf/event Version ^2.2
hyperf/framework Version ^2.2
hyperf/http-server Version ^2.2
hyperf/logger Version ^2.2
jetbrains/phpstorm-attributes Version ^1.0