您的位置:首页 > 其它

Elastic-Job-Lite 分析( 作业配置)

2017-09-08 17:35 483 查看

1. 概述

本文主要分享 Elastic-Job-Lite 作业配置。

Elastic-Job-Lite涉及的类图:

黄色的类在 elastic-job-common-core 项目里,为 Elastic-Job-Lite、Elastic-Job-Cloud 公用作业配置类。



2. 作业配置

一个作业( ElasticJob )的调度,需要配置独有的一个作业调度器( JobScheduler ),两者是 1 : 1 的关系。这点大家要注意下,当然下文看代码也会看到。

作业调度器的创建可以配置四个参数:

a.注册中心( CoordinatorRegistryCenter ):用于协调分布式服务。必填。

b.Lite作业配置( LiteJobConfiguration ):必填。

c.作业事件总线( JobEventBus ):对作业事件异步监听。选填。

d. 作业监听器( ElasticJobListener ):对作业执行前,执行后进行同步监听。选填。

2.1 注册中心配置

Elastic-Job 抽象了注册中心接口( RegistryCenter ),并提供了默认基于 Zookeeper 的注册中心实现( ZookeeperRegistryCenter )。

ZookeeperRegistryCenter 对应配置类为 ZookeeperConfiguration。该类注释很完整,可以点击链接直接查看源码,这里我们重点说下 namespace 属性。如果你有多个不同 Elastic-Job集群 时,使用相同 Zookeeper,可以配置不同的 namespace 进行隔离。

2.2 Lite作业配置

LiteJobConfiguration 继承自接口 JobRootConfiguration,作为 Elastic-Job-Lite 里的作业( LiteJob )配置。Elastic-Job-Cloud 的作业( CloudJob )对应另外的配置类,也实现了该接口。

public final class LiteJobConfiguration implements JobRootConfiguration {

private final JobTypeConfiguration typeConfig;
private final boolean monitorExecution;
private final int maxTimeDiffSeconds;
private final int monitorPort;
private final String jobShardingStrategyClass;
private final int reconcileIntervalMinutes;
private final boolean disabled;
private final boolean overwrite;

// .... 省略部分get方法

public static class Builder {

// .... 省略部分属性

public final LiteJobConfiguration build() {
return new LiteJobConfiguration(jobConfig, monitorExecution, maxTimeDiffSeconds, monitorPort, jobShardingStrategyClass, reconcileIntervalMinutes, disabled, overwrite);
}
}
}
这里写代码片


typeConfig:作业类型配置。必填

monitorExecution:监控作业运行时状态。默认为 false。选填。

monitorPort:作业监控端口。默认为 -1,不开启作业监控端口。选填。

maxTimeDiffSeconds:设置最大容忍的本机与注册中心的时间误差秒数。默认为 -1,不检查时间误差。选填。

2.2.1 作业类型配置

作业类型配置接口( JobTypeConfiguration ) 有三种配置实现,针对三种作业类型:

SimpleJobConfiguration SimpleJob 简单作业。例如:订单过期作业

DataflowJobConfiguration DataflowJob 数据流作业。

ScriptJobConfiguration ScriptJob 脚本作业。例如:调用 shell 脚本备份数据库作业
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: