本文适合有 JAVA 基础知识的人群
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/1111102494-0.jpg)
文章插图
作者:HelloGitHub-Salieri
引言HelloGitHub 推出的《讲解开源项目》[1]系列 。
项目地址:PowerJob 的设计目标为企业级的分布式任务调度平台,即成为公司内部的调度中间件 。整个公司统一部署调度中心 powerjob-server,旗下所有业务线应用只需要依赖 'powerjob-worker' 即可接入获取任务调度与分布式计算能力 。
https://github.com/KFCFans/PowerJob
因此,PowerJob 由调度服务器(powerjob-server)和执行器(powerjob-worker)两部分组成,powerjob-server 负责提供 Web 服务和完成任务的调度,powerjob-worker 则负责执行用户所编写的任务代码,同时提供分布式计算能力 。
以下为在本地开发环境快速搭建并试用 PowerJob 的教程 。
一、STEP1: 初始化项目
- git clone https://github.com/KFCFans/PowerJob.git
- 导入 IDE,源码结构如下,我们需要启动调度服务器(powerjob-server),同时在 samples 工程中编写自己的处理器代码
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/1111104119-1.jpg)
文章插图
二、STEP2: 启动调度服务器1 . 创建数据库(不需要建表,只需要创建数据库)powerjob-daily
2 . 修改配置文件,配置文件的说明官方文档[2]写的非常详细,此处不再赘述 。由于是在本地 IDE 搭建测试环境,因此我们选择使用开发环境的配置文件 Application-daily.properties 来修改并使用 。需要修改的地方为数据库配置:
- spring.datasource.core.jdbc-url
- spring.datasource.core.username
- spring.datasource.core.password
- 当然,有 mongoDB 的同学也可以修改 spring.data.mongodb.uri 以获取完全版体验 。
4 . 注册应用:点击主页应用注册按钮,填入 powerjob-agent-test 和控制台密码(用于进入控制台),注册示例应用(当然你也可以注册其他的 appName,只是别忘记在示例程序中同步修改~)
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/11111032b-2.jpg)
文章插图
三、STEP3: 编写示例代码
进入示例工程(powerjob-worker-samples),修改配置文件连接 powerjob-server 并编写自己的处理器代码 。1 . 修改 powerjob-worker-samples 的启动配置类 OhMySchedulerConfig,将 appName 修改为刚刚在控制台注册的名称 。
2 . 编写自己的处理器:在示例工程中新建一个类,继承你想要使用的处理器(各个处理器的介绍可见官方文档[3]),这里为了简单演示,选择使用单机处理器 BasicProcessor,以下代码示例演示了在线日志功能的使用 。
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/1111104X4-3.jpg)
文章插图
3 . 启动示例程序,即直接运行主类 SampleApplication,观察控制台输出信息,判断是否启动成功 。
四、STEP4: 任务的配置与运行调度服务器与示例工程都启动完毕后,再次前往 Web 页面( http://127.0.0.1:7700/ ),进行任务的配置与运行 。
1 . 在首页输入框输入配置的应用名称,成功操作后会正式进入前端管理界面 。
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/1111104258-4.jpg)
文章插图
2 . 点击任务管理 -> 新建任务(右上角),开始创建任务 。
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/1111103944-5.jpg)
文章插图
3 . 完成任务创建后,即可在控制台看到刚才创建的任务,如果觉得等待调度太过于漫长,可以直接点击运行按钮,立即运行本任务 。
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/1111103546-6.jpg)
文章插图
4 . 前往任务示例边栏,查看任务的运行状态和在线日志
![Java 分布式任务调度平台:PowerJob 快速开始+配置详解](http://img.jiangsulong.com/220418/1111102S1-7.jpg)
文章插图
4.1 基本配置
- 任务名称:名称
- 任务描述:描述
- 任务参数:任务处理时能够获取到的参数(即各个 Processor的process 方法入参 TaskContext 对象的 jobParams 属性)(进行一次处理器开发就能理解了)
- 定时信息:该任务的触发方式,由下拉框和输入框组成
- API -> 不需要填写任何参数,表明该任务由 OpenAPI 触发
推荐阅读
- SpringBoot下使用定时任务的方式全揭秘
- 关于JavaScript中this关键字指向的问题
- 这一次,彻底解决Java的值传递和引用传递
- 再有人问你什么是分布式事务,把这篇文章扔给他
- 分布式爬虫管理平台Crawlab开发搭建
- 为什么Java程序员必须要会SpringBoot?
- JAVA多线程-BlockingQueue
- Java 后端博客系统文章系统——No1
- 企业级Java标准体系及产品级服务器TomEE
- 不合适初学者 揭秘JAVA JVM内幕