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 | 最后一个作业执行后的执行方法的超时时间 单位:毫秒 |