本文适合有 Java 基础知识的人群前端
做者:HelloGitHub-Salieripython
HelloGitHub 推出的《讲解开源项目》系列。git
项目地址:github
https://github.com/KFCFans/PowerJobweb
PowerJob 的设计目标为企业级的分布式任务调度平台,即成为公司内部的调度中间件。整个公司统一部署调度中心 powerjob-server,旗下全部业务线应用只须要依赖 'powerjob-worker' 便可接入获取任务调度与分布式计算能力。spring
所以,PowerJob 由调度服务器(powerjob-server)和执行器(powerjob-worker)两部分组成,powerjob-server 负责提供 Web 服务和完成任务的调度,powerjob-worker 则负责执行用户所编写的任务代码,同时提供分布式计算能力。mongodb
如下为在本地开发环境快速搭建并试用 PowerJob 的教程。数据库
git clone https://github.com/KFCFans/PowerJob.git
数组
导入 IDE,源码结构以下,咱们须要启动调度服务器(powerjob-server),同时在 samples 工程中编写本身的处理器代码服务器
建立数据库(不须要建表,只须要建立数据库)powerjob-daily
修改配置文件,配置文件的说明官方文档写的很是详细,此处再也不赘述。因为是在本地 IDE 搭建测试环境,所以咱们选择使用开发环境的配置文件 application-daily.properties
来修改并使用。须要修改的地方为数据库配置:
spring.datasource.core.jdbc-url
spring.datasource.core.username
spring.datasource.core.password
spring.data.mongodb.uri
以获取彻底版体验。
完成配置文件的修改后,能够直接经过启动类 OhMyApplication
启动调度服务器,观察启动日志,查看是否启动成功~启动成功后,访问 http://127.0.0.1:7700/ ,若是能顺利出现 Web 界面,则说明调度服务器启动成功!
注册应用:点击主页应用注册按钮,填入 powerjob-agent-test
和控制台密码(用于进入控制台),注册示例应用(固然你也能够注册其余的 appName,只是别忘记在示例程序中同步修改~)
进入示例工程(powerjob-worker-samples),修改配置文件链接 powerjob-server 并编写本身的处理器代码。
修改 powerjob-worker-samples 的启动配置类 OhMySchedulerConfig
,将 appName
修改成刚刚在控制台注册的名称。
编写本身的处理器:在示例工程中新建一个类,继承你想要使用的处理器(各个处理器的介绍可见官方文档),这里为了简单演示,选择使用单机处理器 BasicProcessor
,如下代码示例演示了在线日志功能的使用。
@Slf4j
@Component public class StandaloneProcessorDemo implements BasicProcessor { @Override public ProcessResult process(TaskContext context) throws Exception { OmsLogger omsLogger = context.getOmsLogger(); omsLogger.info("start process,context is {}.", context); System.out.println("jobParams is " + context.getJobParams()); return new ProcessResult(true, "process successfully~"); } } 复制代码
启动示例程序,即直接运行主类 SampleApplication
,观察控制台输出信息,判断是否启动成功。
调度服务器与示例工程都启动完毕后,再次前往 Web 页面( http://127.0.0.1:7700/ ),进行任务的配置与运行。
完成任务建立后,便可在控制台看到刚才建立的任务,若是以为等待调度太过于漫长,能够直接点击运行按钮,当即运行本任务。
前往任务示例边栏,查看任务的运行状态和在线日志
TaskContext
对象的 jobParams 属性)(进行一次处理器开发就能理解了)
由执行类型(单机、广播和 MapReduce)、处理器类型和处理器参数组成,后两项相互关联。
com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo
)
18#com.github.kfcfans.oms.container.DemoProcessor
)
用来标明容许执行任务的机器状态,避开那些风雨飘摇的机器,0 表明无任何限制。
192.168.1.1:27777,192.168.1.2:27777
选择任务执行失败后报警通知的对象,须要事先录入。
基础的教程到这里也就结束了~更多功能示例可见官方文档,工做流、MapReduce、容器等高级特性等你来探索!
本章详细介绍了 PowerJob 的快速入门,根据本文可以快速搭建起本地开发/测试环境。下一章节,我将会对PowerJob 总体的架构作一个介绍,为后面的技术剖析作准备。
那咱们下期再见喽~
“常在河边走,哪有不湿鞋”,然而,这句话在茶卡盐湖却属于奢望。
稍有不慎,隐秘的盐窟便对你敞开怀抱,瞬间将你吞噬~
盐湖如此,人生亦是如此。
不免不幸时,也要对着美好的明天微笑~
关注公众号加入交流群(做者在 Java 群)