-
Notifications
You must be signed in to change notification settings - Fork 163
/
ElasticJobConf.java
199 lines (159 loc) · 5.23 KB
/
ElasticJobConf.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
package com.cxytiandi.elasticjob.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Component;
/**
* ElasticJob 注解配置类
*
* <p>任务的配置只需要在Job类上加上此注解即可<p>
*
* @author yinjihuan
*
* @about http://cxytiandi.com/about
*
*/
@Component
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface ElasticJobConf {
/*********************DataflowJobConfiguration START********************/
/**
* 作业名称
* @return
*/
String name();
/**
* cron表达式,用于控制作业触发时间
* @return
*/
String cron() default "";
/**
* 作业分片总数
* @return
*/
int shardingTotalCount() default 1;
/**
* 分片序列号和参数用等号分隔,多个键值对用逗号分隔
* <p>分片序列号从0开始,不可大于或等于作业分片总数<p>
* <p>如:<p>
* <p>0=a,1=b,2=c<p>
* @return
*/
String shardingItemParameters() default "";
/**
* 作业自定义参数
* <p>作业自定义参数,可通过传递该参数为作业调度的业务方法传参,用于实现带参数的作业<p>
* <p>例:每次获取的数据量、作业实例从数据库读取的主键等<p>
* @return
*/
String jobParameter() default "";
/**
* 是否开启任务执行失效转移,开启表示如果作业在一次任务执行中途宕机,允许将该次未完成的任务在另一作业节点上补偿执行
* @return
*/
boolean failover() default false;
/**
* 是否开启错过任务重新执行
* @return
*/
boolean misfire() default false;
/**
* 作业描述信息
* @return
*/
String description() default "";
boolean overwrite() default false;
/*********************DataflowJobConfiguration END********************/
/*********************DataflowJobConfiguration START********************/
/**
* 是否流式处理数据
* <p>如果流式处理数据, 则fetchData不返回空结果将持续执行作业<p>
* <p>如果非流式处理数据, 则处理数据完成后作业结束<p>
* @return
*/
boolean streamingProcess() default false;
/*********************DataflowJobConfiguration END********************/
/*********************ScriptJobConfiguration START********************/
/**
* 脚本型作业执行命令行
* @return
*/
String scriptCommandLine() default "";
/*********************ScriptJobConfiguration END********************/
/*********************LiteJobConfiguration START********************/
/**
* 监控作业运行时状态
* <p>每次作业执行时间和间隔时间均非常短的情况,建议不监控作业运行时状态以提升效率。<p>
* <p>因为是瞬时状态,所以无必要监控。请用户自行增加数据堆积监控。并且不能保证数据重复选取,应在作业中实现幂等性。<p>
* <p>每次作业执行时间和间隔时间均较长的情况,建议监控作业运行时状态,可保证数据不会重复选取。<p>
* @return
*/
boolean monitorExecution() default true;
/**
* 作业监控端口
* <p>建议配置作业监控端口, 方便开发者dump作业信息。<p>
* <p>使用方法: echo “dump” | nc 127.0.0.1 9888<p>
* @return
*/
int monitorPort() default -1;
/**
* 大允许的本机与注册中心的时间误差秒数
* <p>如果时间误差超过配置秒数则作业启动时将抛异常<p>
* <p>配置为-1表示不校验时间误差<p>
* @return
*/
int maxTimeDiffSeconds() default -1;
/**
* 作业分片策略实现类全路径,默认使用平均分配策略
* @return
*/
String jobShardingStrategyClass() default "";
/**
* 修复作业服务器不一致状态服务调度间隔时间,配置为小于1的任意值表示不执行修复,单位:分钟
* @return
*/
int reconcileIntervalMinutes() default 10;
/**
* 作业事件追踪的数据源Bean引用
* @return
*/
String eventTraceRdbDataSource() default "";
/*********************LiteJobConfiguration END********************/
/**
* 前置后置任务监听实现类,需实现ElasticJobListener接口
* @return
*/
String listener() default "";
/**
* 作业是否禁止启动,可用于部署作业时,先禁止启动,部署结束后统一启动
* @return
*/
boolean disabled() default false;
/**
* 前置后置任务分布式监听实现类,需继承AbstractDistributeOnceElasticJobListener类
* @return
*/
String distributedListener() default "";
/**
* 最后一个作业执行前的执行方法的超时时间,单位:毫秒
* @return
*/
long startedTimeoutMilliseconds() default Long.MAX_VALUE;
/**
* 最后一个作业执行后的执行方法的超时时间,单位:毫秒
* @return
*/
long completedTimeoutMilliseconds() default Long.MAX_VALUE;
/**
* 自定义异常处理类
* @return
*/
String jobExceptionHandler() default "com.dangdang.ddframe.job.executor.handler.impl.DefaultJobExceptionHandler";
/**
* 自定义业务处理线程池
* @return
*/
String executorServiceHandler() default "com.dangdang.ddframe.job.executor.handler.impl.DefaultExecutorServiceHandler";
}