+++ toc = true date = “2016-03-21T16:14:21+08:00” title = “配置手册” weight = 12 prev = “/02-guide/web-console/” next = “/02-guide/job-sharding-strategy/” +++

1. Java Code配置

a. 注册中心配置

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

ZookeeperConfiguration属性详细说明

属性名类型构造器注入缺省值描述
serverListsString连接Zookeeper服务器的列表
包括IP地址和端口号
多个地址用逗号分隔
如: host1:2181,host2:2181
namespaceStringZookeeper的命名空间
baseSleepTimeMillisecondsint1000等待重试的间隔时间的初始值
单位:毫秒
maxSleepTimeMillisecondsString3000等待重试的间隔时间的最大值
单位:毫秒
maxRetriesString3最大重试次数
sessionTimeoutMillisecondsboolean60000会话超时时间
单位:毫秒
connectionTimeoutMillisecondsboolean15000连接超时时间
单位:毫秒
digestString连接Zookeeper的权限令牌
缺省为不需要权限验证

b. 作业配置

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

JobCoreConfiguration属性详细说明

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

SimpleJobConfiguration属性详细说明

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

DataflowJobConfiguration属性详细说明

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

ScriptJobConfiguration属性详细说明

属性名类型构造器注入缺省值描述
coreConfigJobCoreConfiguration
scriptCommandLineString脚本型作业执行命令行

LiteJobConfiguration属性详细说明

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

2. Spring命名空间配置

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

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

a. 注册中心配置

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

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

b. 作业配置

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

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

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

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

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

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

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

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

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

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

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

c. 作业监听配置

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

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

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