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接口三种作业类型实现类
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对象。
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对象。
相关文章推荐
- Elastic-Job-Lite 分析( 作业配置)
- [置顶] elastic job (一) elastic-job-lite----SimpleJob
- [置顶] Elastic-Job-Lite 源码阅读 ---- 作业执行
- Elastic-Job-Lite 项目编译问题
- elastic-lite-job作业监控服务
- elastic-lite-job注册中心数据结构
- Elastic-Job-Lite的原理简介和使用(推荐)
- elastic-lite-job service节点
- elastic-job-Lite入门
- [置顶] Elastic-Job-Lite 源码阅读 ---- 任务初始化
- Elastic-Job-Lite实现原理
- elastic-lite-job作业运行痕迹
- Elastic-Job 基础篇:基本信息及环境搭建
- elastic-job的elastic-job-lite-console部署
- Elastic-Job-Lite分析——作业调度器 JobScheduler 的创建过程
- Elastic-job-lite 2.1.3 代码详解
- elastic-lite-job leader节点
- elastic-job(lite)使用的一些注意事项
- C3P0配置信息详解
- 用户管理,信息验证组件 ----ldap的配置