执行器支持HA,同时支持Failover

v1.3
xueli.xue 9 years ago
parent 4b47f12cf6
commit 2e2ec18f41

@ -21,14 +21,15 @@ XXL-JOB是一个轻量级分布式任务调度框架其核心设计目标是
- 1、简单支持通过Web页面对任务进行CRUD操作操作简单一分钟上手 - 1、简单支持通过Web页面对任务进行CRUD操作操作简单一分钟上手
- 2、动态支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效; - 2、动态支持动态修改任务状态、暂停/恢复任务,以及终止运行中任务,即时生效;
- 3、调度HA“调度中心”基于集群Quartz实现可保证调度中心HA - 3、调度HA“调度中心”基于集群Quartz实现可保证调度中心HA
- 4、任务HA任务支持多地址配置可保证任务HAFailover - 4、任务HA任务支持多地址配置可保证任务执行HA
- 5、一致性“调度中心”通过DB锁保证集群分布式调度的一致性 - 5、任务Failover多地址配置时调度失败时将会平滑切换执行器进行Failover
- 6、自定义任务参数支持在线配置调度任务入参即时生效 - 6、一致性“调度中心”通过DB锁保证集群分布式调度的一致性
- 7、调度线程池调度系统多线程触发调度运行确保调度精确执行不被堵塞 - 7、自定义任务参数支持在线配置调度任务入参即时生效
- 8、执行日志支持在线查看调度结果并且查看完整的执行日志 - 8、调度线程池调度系统多线程触发调度运行确保调度精确执行不被堵塞
- 9、邮件报警任务失败时支持邮件报警同时可自定义失败次数阀值 - 9、执行日志支持在线查看调度结果并且查看完整的执行日志
- 10、支持登录验证 - 10、邮件报警任务失败时支持邮件报警同时可自定义失败次数阀值
- 11、GLUE提供Web IDE支持在线开发任务逻辑代码动态发布实时编译生效省略部署上线的过程。 - 11、支持登录验证
- 12、GLUE提供Web IDE支持在线开发任务逻辑代码动态发布实时编译生效省略部署上线的过程。
#### 1.3 发展 #### 1.3 发展
于2015年中我在github上创建XXL-JOB项目仓库并提交第一个commit随之进行系统结构设计UI选型交互设计…… 于2015年中我在github上创建XXL-JOB项目仓库并提交第一个commit随之进行系统结构设计UI选型交互设计……

@ -1,8 +1,11 @@
package com.xxl.job.admin.core.jobbean; package com.xxl.job.admin.core.jobbean;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionContext;
@ -88,6 +91,12 @@ public class RemoteHttpJobBean extends QuartzJobBean {
*/ */
public RemoteCallBack failoverTrigger(String handler_address, HashMap<String, String> handler_params, XxlJobLog jobLog){ public RemoteCallBack failoverTrigger(String handler_address, HashMap<String, String> handler_params, XxlJobLog jobLog){
if (handler_address.split(",").length > 1) { if (handler_address.split(",").length > 1) {
// for ha
List<String> addressList = Arrays.asList(handler_address.split(","));
Collections.shuffle(addressList);
// for failover
String failoverMessage = ""; String failoverMessage = "";
for (String address : handler_address.split(",")) { for (String address : handler_address.split(",")) {
if (StringUtils.isNotBlank(address)) { if (StringUtils.isNotBlank(address)) {

Loading…
Cancel
Save