您的位置:首页 > 其它

elastic-lite-job配置信息

2018-03-06 10:39 465 查看
当启动一个定时任务时,必然需要众多的配置(例如:触发时间、业务运行逻辑,具体根据项目业务场景进行抽象,提供共用配置项),然后调度器的构造函数中必然要传入这个配置对象,调度器才能知道具体运行什么业务,以怎样的方式运行,接下来简述Elastic-Job-Lite作业配置。
1,本文主要讲述Elastic-Job-Lite作业配置
涉及主要类的类图如下图所示:



1,JobRootConfiguration配置接口/** * 作业配置根接口. */public  interface  JobRootConfiguration {       /**     * 获取作业类型配置.      * @return作业类型配置     */   JobTypeConfiguration  getTypeConfig();
}
①此接口提供获取JobTypeConfiguration对象
②JobTypeConfiguration抽象成为一个独立接口原因,ElasticJob有三种不同作业类型:simple、dataflow、script不同实现类型,所有被单独抽象出来
2,JobTypeConfiguration作业类型配置接口/** * 作业类型配置. */public  interface  JobTypeConfiguration {       /**     * 获取作业类型.     *      * @return作业类型     */   JobType getJobType();       /**     * 获取作业实现类名称.     *     * @return作业实现类名称     */   String getJobClass();       /**     * 获取作业核心配置.     *      * @return作业核心配置     */   JobCoreConfiguration getCoreConfig();
}
①getJobType()获取作业类型,JobType枚举类,目前定义3种类型SIMPLE、DATAFLOW、SCRIPT
②getJobClass()获取作业实现类名称,作业业务逻辑类全限定名路径,其中ScriptJobConfiguration获取的是io.elasticjob.lite.api.script. ScriptJob全限定名路径
③getCoreConfig()获取作业核心配置信息,该配置抽象成独立的JobCoreConfiguration类,是因为三种不同作业类型共要的公共属性
3, JobTypeConfiguration接口三种作业类型实现类
配置实现
作业类型
 说明
SimpleJobConfiguration
simple
简单作业
ScriptJobConfiguration
script
脚本作业,例如:shell
DataflowJobConfiguration
dataflow
数据流作业
 
4,JobCoreConfiguration作业核心配置/** * 作业核心配置.
 */public  final  class  JobCoreConfiguration{//作业名称   private  final  String  jobName;    //cron表达式,用于控制作业触发时间   private  final  String  cron;    //作业分片总数   private  final  int  shardingTotalCount;    //分片序列号和参数用等号分隔,多个键值对用逗号分隔   //分片序列号从0开始,不可大于或等于作业分片总数   private  final  String   shardingItemParameters;    //作业自定义参数//作业自定义参数,可通过传递该参数为作业调度的业务方法传参,用于实现带参数的作业   private  final  String  jobParameter;//是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,    //允许将该次未完成的任务在另一作业节点上补偿执行   private  final  boolean  failover;    //是否开启错过任务重新执行   private  final  boolean  misfire;    //作业描述信息   private  final  String  description;   //配置jobProperties定义的枚举控制Elastic-Job的实现细节    //JOB_EXCEPTION_HANDLER用于扩展异常处理类   //EXECUTOR_SERVICE_HANDLER用于扩展作业处理线程池类   private  final  JobProperties  jobProperties;
}
①以上是JobCoreConfiguration类定义了作业核心配置属性,他定义一个ElasticJob所需要核心配置。
②调度器启动时,根据配置信息进行启动
③关键属性
  jobName:作业名称
  cron:cron表达式,用于控制作业触发时间
  shardingTotalCount:作业分片总数
  shardingItemParameters:分片序列号和参数
5,LiteJobConfiguration Lite作业配置/** * Lite作业配置. */public  final  class  LiteJobConfiguration  implements  JobRootConfiguration {//JobTypeConfiguration接口被独立成一个接口的原因是,ElasticJob有三种不同的作业//类型,simple,script,dataflow,他们的实现方式有差异,所以需要被独立出来   private  final  JobTypeConfiguration   typeConfig;    //监控作业运行时状态,默认值true   private  final  boolean  monitorExecution;    //最大允许的本机与注册中心的时间误差秒数   //如果时间误差超过配置秒数则作业启动时将抛异常    //配置为-1表示不校验时间误差   private   final  int  maxTimeDiffSeconds;    //作业监控端口   //建议配置作业监控端口, 方便开发者dump作业信息    //使用方法: echo “dump” | nc 127.0.0.1 9888   private  final  int  monitorPort;   //作业分片策略实现类全路径   //默认使用平均分配策略   private  final  String  jobShardingStrategyClass;//修复作业服务器不一致状态服务调度间隔时间,配置为小于1的任意值表示不执行修复    //单位:分钟   private  final  int  reconcileIntervalMinutes;   //设置作业是否启动时禁止.   //可用于部署作业时, 先在启动时禁止, 部署结束后统一启动    //默认值:false   private  final  boolean  disabled;   //本地配置是否可覆盖注册中心配置   //本地配置是否可覆盖注册中心配置   //默认值:false   private  final  boolean  overwrite;}①LiftJobConfiguration是ElasticJob具体配置实现类②每创建一个ElasticJob作业,必须创建一个LiftJobConfiguration对象,每个定时任务对应一个LiftJobConfiguration对象。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  分布式定时任务