配置手册

1. Java Code配置

a. 注册中心配置

用于注册和协调作业分布式行为的组件,目前仅支持Zookeeper。

ZookeeperConfiguration属性详细说明

属性名 类型 构造器注入 缺省值 描述
serverLists String 连接Zookeeper服务器的列表
包括IP地址和端口号
多个地址用逗号分隔
如: host1:2181,host2:2181
namespace String Zookeeper的命名空间
baseSleepTimeMilliseconds int 1000 等待重试的间隔时间的初始值
单位:毫秒
maxSleepTimeMilliseconds String 3000 等待重试的间隔时间的最大值
单位:毫秒
maxRetries String 3 最大重试次数
sessionTimeoutMilliseconds boolean 60000 会话超时时间
单位:毫秒
connectionTimeoutMilliseconds boolean 15000 连接超时时间
单位:毫秒
digest String 连接Zookeeper的权限令牌
缺省为不需要权限验证

b. 作业配置

作业配置分为3级,分别是JobCoreConfiguration,JobTypeConfiguration和LiteJobConfiguration。LiteJobConfiguration使用JobTypeConfiguration,JobTypeConfiguration使用JobCoreConfiguration,层层嵌套。 JobTypeConfiguration根据不同实现类型分为SimpleJobConfiguration,DataflowJobConfiguration和ScriptJobConfiguration。

JobCoreConfiguration属性详细说明

属性名 类型 构造器注入 缺省值 描述
jobName String 作业名称
cron String cron表达式,用于控制作业触发时间
shardingTotalCount int 作业分片总数
shardingItemParameters String 分片序列号和参数用等号分隔,多个键值对用逗号分隔
分片序列号从0开始,不可大于或等于作业分片总数
如:
0=a,1=b,2=c
jobParameter String 作业自定义参数
作业自定义参数,可通过传递该参数为作业调度的业务方法传参,用于实现带参数的作业
例:每次获取的数据量、作业实例从数据库读取的主键等
failover boolean false 是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
misfire boolean true 是否开启错过任务重新执行
description String 作业描述信息
jobProperties Enum 配置jobProperties定义的枚举控制Elastic-Job的实现细节
JOB_EXCEPTION_HANDLER用于扩展异常处理类
EXECUTOR_SERVICE_HANDLER用于扩展作业处理线程池类

SimpleJobConfiguration属性详细说明

属性名 类型 构造器注入 缺省值 描述
coreConfig JobCoreConfiguration
jobClass String 作业实现类,需实现ElasticJob接口

DataflowJobConfiguration属性详细说明

属性名 类型 构造器注入 缺省值 描述
coreConfig JobCoreConfiguration
jobClass String 作业实现类,需实现ElasticJob接口
streamingProcess boolean false 是否流式处理数据
如果流式处理数据, 则fetchData不返回空结果将持续执行作业
如果非流式处理数据, 则处理数据完成后作业结束

ScriptJobConfiguration属性详细说明

属性名 类型 构造器注入 缺省值 描述
coreConfig JobCoreConfiguration
scriptCommandLine String 脚本型作业执行命令行

LiteJobConfiguration属性详细说明

属性名 类型 构造器注入 缺省值 描述
jobConfig JobTypeConfiguration
monitorExecution boolean true 监控作业运行时状态
每次作业执行时间和间隔时间均非常短的情况,建议不监控作业运行时状态以提升效率。因为是瞬时状态,所以无必要监控。请用户自行增加数据堆积监控。并且不能保证数据重复选取,应在作业中实现幂等性。
每次作业执行时间和间隔时间均较长的情况,建议监控作业运行时状态,可保证数据不会重复选取。
monitorPort int -1 作业监控端口
建议配置作业监控端口, 方便开发者dump作业信息。
使用方法: echo “dump” | nc 127.0.0.1 9888
maxTimeDiffSeconds int -1 最大允许的本机与注册中心的时间误差秒数
如果时间误差超过配置秒数则作业启动时将抛异常
配置为-1表示不校验时间误差
jobShardingStrategyClass String -1 作业分片策略实现类全路径
默认使用平均分配策略
详情参见:作业分片策略
reconcileIntervalMinutes int 10 修复作业服务器不一致状态服务调度间隔时间,配置为小于1的任意值表示不执行修复
单位:分钟
eventTraceRdbDataSource String 作业事件追踪的数据源Bean引用

2. Spring命名空间配置

Spring命名空间与Java Code方式配置类似,大部分属性只是将命名方式由驼峰式改为以减号间隔。使用Spring命名空间需在pom.xml文件中添加elastic-job-lite-spring模块的依赖。

<dependency>
    <groupId>io.elasticjob</groupId>
    <artifactId>elastic-job-lite-spring</artifactId>
    <version>${latest.release.version}</version>
</dependency>

a. 注册中心配置

reg:zookeeper命名空间属性详细说明

属性名 类型 是否必填 缺省值 描述
id String 注册中心在Spring容器中的主键
server-lists String 连接Zookeeper服务器的列表
包括IP地址和端口号
多个地址用逗号分隔
如: host1:2181,host2:2181
namespace String Zookeeper的命名空间
base-sleep-time-milliseconds int 1000 等待重试的间隔时间的初始值
单位:毫秒
max-sleep-time-milliseconds int 3000 等待重试的间隔时间的最大值
单位:毫秒
max-retries int 3 最大重试次数
session-timeout-milliseconds int 60000 会话超时时间
单位:毫秒
connection-timeout-milliseconds int 15000 连接超时时间
单位:毫秒
digest String 连接Zookeeper的权限令牌
缺省为不需要权限验证

b. 作业配置

job:simple命名空间属性详细说明

属性名 类型 是否必填 缺省值 描述
id String 作业名称
class String 作业实现类,需实现ElasticJob接口
job-ref String 作业关联的beanId,该配置优先级大于class属性配置
registry-center-ref String 注册中心Bean的引用,需引用reg:zookeeper的声明
cron String cron表达式,用于控制作业触发时间
sharding-total-count int 作业分片总数
sharding-item-parameters String 分片序列号和参数用等号分隔,多个键值对用逗号分隔
分片序列号从0开始,不可大于或等于作业分片总数
如:
0=a,1=b,2=c
job-instance-id String defaultInstance 作业实例主键,同IP可运行实例主键不同, 但名称相同的多个作业实例
job-parameter String 作业自定义参数
作业自定义参数,可通过传递该参数为作业调度的业务方法传参,用于实现带参数的作业
例:每次获取的数据量、作业实例从数据库读取的主键等
monitor-execution boolean true 监控作业运行时状态
每次作业执行时间和间隔时间均非常短的情况,建议不监控作业运行时状态以提升效率。因为是瞬时状态,所以无必要监控。请用户自行增加数据堆积监控。并且不能保证数据重复选取,应在作业中实现幂等性。
每次作业执行时间和间隔时间均较长的情况,建议监控作业运行时状态,可保证数据不会重复选取。
monitor-port int -1 作业监控端口
建议配置作业监控端口, 方便开发者dump作业信息。
使用方法: echo “dump” | nc 127.0.0.1 9888
max-time-diff-seconds int -1 最大允许的本机与注册中心的时间误差秒数
如果时间误差超过配置秒数则作业启动时将抛异常
配置为-1表示不校验时间误差
failover boolean false 是否开启失效转移
misfire boolean true 是否开启错过任务重新执行
job-sharding-strategy-class String 作业分片策略实现类全路径
默认使用平均分配策略
详情参见:作业分片策略
description String 作业描述信息
disabled boolean false 作业是否禁止启动
可用于部署作业时,先禁止启动,部署结束后统一启动
overwrite boolean false 本地配置是否可覆盖注册中心配置
如果可覆盖,每次启动作业都以本地配置为准
job-exception-handler String 扩展异常处理类
executor-service-handler String 扩展作业处理线程池类
reconcile-interval-minutes int 10 修复作业服务器不一致状态服务调度间隔时间,配置为小于1的任意值表示不执行修复
单位:分钟
event-trace-rdb-data-source String 作业事件追踪的数据源Bean引用

job:dataflow命名空间属性详细说明

job:dataflow命名空间拥有job:simple命名空间的全部属性,以下仅列出特有属性

属性名 类型 是否必填 缺省值 描述
streaming-process boolean false 是否流式处理数据
如果流式处理数据, 则fetchData不返回空结果将持续执行作业
如果非流式处理数据, 则处理数据完成后作业结束

job:script命名空间属性详细说明,基本属性参照job:simple命名空间属性详细说明

job:script命名空间拥有job:simple命名空间的全部属性,以下仅列出特有属性

属性名 类型 是否必填 缺省值 描述
script-command-line String 脚本型作业执行命令行

job:listener命名空间属性详细说明

job:listener必须配置为job:bean的子元素,并且在子元素中只允许出现一次

属性名 类型 是否必填 缺省值 描述
class String 前置后置任务监听实现类,需实现ElasticJobListener接口

c. 作业监听配置

job:distributed-listener命名空间属性详细说明

job:distributed-listener必须配置为job:bean的子元素,并且在子元素中只允许出现一次

属性名 类型 是否必填 缺省值 描述
class String 前置后置任务分布式监听实现类,需继承AbstractDistributeOnceElasticJobListener类
started-timeout-milliseconds long Long.MAX_VALUE 最后一个作业执行前的执行方法的超时时间
单位:毫秒
completed-timeout-milliseconds long Long.MAX_VALUE 最后一个作业执行后的执行方法的超时时间
单位:毫秒