diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml index 283d68c..7ce7678 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml @@ -81,6 +81,7 @@ WHERE t.job_name = #{jobName} + ORDER BY id DESC LIMIT #{offset}, #{pagesize} diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml index 283d68c..7ce7678 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml @@ -81,6 +81,7 @@ WHERE t.job_name = #{jobName} + ORDER BY id DESC LIMIT #{offset}, #{pagesize} diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl index bf6f235..0876507 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl @@ -64,7 +64,8 @@ diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml index 283d68c..7ce7678 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml @@ -81,6 +81,7 @@ WHERE t.job_name = #{jobName} + ORDER BY id DESC LIMIT #{offset}, #{pagesize} diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl index bf6f235..0876507 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl @@ -64,7 +64,8 @@ diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl new file mode 100644 index 0000000..9ce7eaf --- /dev/null +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl @@ -0,0 +1,76 @@ + + + + 调度中心 + <#import "/common/common.macro.ftl" as netCommon> + <@netCommon.commonStyle /> + + +
+ + <@netCommon.commonHeader /> + + <@netCommon.commonLeft /> + + +
+ +
+

使用教程调度管理平台

+ +
+ + +
+
+

简介:XXL_JOB

+

基于quartz封装实现的的集群任务调度管理平台.

+

+
+
+

特点:

+

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

+

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

+

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

+
+ +
+

分层模型:

+

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

+

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

+

+

+
+

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

+

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

+

》通讯模块:负责调度模块和任务模块之间的通讯.

+

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

+
+
+

+
+ +
+

调度属性解析 : 发出HTTP调度请求

+

1、调度Key【必填】:调度信息的全局唯一标识.

+

2、调度Corn【必填】:调度执行的时间表达式.

+

3、调度描述【必填】:调度的简述.

+

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

+

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

+
+
+ +
+ + + + <@netCommon.commonFooter /> + + <@netCommon.commonControl /> +
+<@netCommon.commonScript /> + + diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml index 283d68c..7ce7678 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml @@ -81,6 +81,7 @@ WHERE t.job_name = #{jobName} + ORDER BY id DESC LIMIT #{offset}, #{pagesize} diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl index bf6f235..0876507 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl @@ -64,7 +64,8 @@ diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl new file mode 100644 index 0000000..9ce7eaf --- /dev/null +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl @@ -0,0 +1,76 @@ + + + + 调度中心 + <#import "/common/common.macro.ftl" as netCommon> + <@netCommon.commonStyle /> + + +
+ + <@netCommon.commonHeader /> + + <@netCommon.commonLeft /> + + +
+ +
+

使用教程调度管理平台

+ +
+ + +
+
+

简介:XXL_JOB

+

基于quartz封装实现的的集群任务调度管理平台.

+

+
+
+

特点:

+

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

+

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

+

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

+
+ +
+

分层模型:

+

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

+

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

+

+

+
+

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

+

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

+

》通讯模块:负责调度模块和任务模块之间的通讯.

+

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

+
+
+

+
+ +
+

调度属性解析 : 发出HTTP调度请求

+

1、调度Key【必填】:调度信息的全局唯一标识.

+

2、调度Corn【必填】:调度执行的时间表达式.

+

3、调度描述【必填】:调度的简述.

+

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

+

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

+
+
+ +
+ + + + <@netCommon.commonFooter /> + + <@netCommon.commonControl /> +
+<@netCommon.commonScript /> + + diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl deleted file mode 100644 index 9ce7eaf..0000000 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl +++ /dev/null @@ -1,76 +0,0 @@ - - - - 调度中心 - <#import "/common/common.macro.ftl" as netCommon> - <@netCommon.commonStyle /> - - -
- - <@netCommon.commonHeader /> - - <@netCommon.commonLeft /> - - -
- -
-

使用教程调度管理平台

- -
- - -
-
-

简介:XXL_JOB

-

基于quartz封装实现的的集群任务调度管理平台.

-

-
-
-

特点:

-

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

-

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

-

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

-
- -
-

分层模型:

-

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

-

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

-

-

-
-

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

-

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

-

》通讯模块:负责调度模块和任务模块之间的通讯.

-

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

-
-
-

-
- -
-

调度属性解析 : 发出HTTP调度请求

-

1、调度Key【必填】:调度信息的全局唯一标识.

-

2、调度Corn【必填】:调度执行的时间表达式.

-

3、调度描述【必填】:调度的简述.

-

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

-

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

-
-
- -
- - - - <@netCommon.commonFooter /> - - <@netCommon.commonControl /> -
-<@netCommon.commonScript /> - - diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml index 283d68c..7ce7678 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml @@ -81,6 +81,7 @@ WHERE t.job_name = #{jobName} + ORDER BY id DESC LIMIT #{offset}, #{pagesize} diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl index bf6f235..0876507 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl @@ -64,7 +64,8 @@ diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl new file mode 100644 index 0000000..9ce7eaf --- /dev/null +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl @@ -0,0 +1,76 @@ + + + + 调度中心 + <#import "/common/common.macro.ftl" as netCommon> + <@netCommon.commonStyle /> + + +
+ + <@netCommon.commonHeader /> + + <@netCommon.commonLeft /> + + +
+ +
+

使用教程调度管理平台

+ +
+ + +
+
+

简介:XXL_JOB

+

基于quartz封装实现的的集群任务调度管理平台.

+

+
+
+

特点:

+

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

+

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

+

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

+
+ +
+

分层模型:

+

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

+

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

+

+

+
+

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

+

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

+

》通讯模块:负责调度模块和任务模块之间的通讯.

+

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

+
+
+

+
+ +
+

调度属性解析 : 发出HTTP调度请求

+

1、调度Key【必填】:调度信息的全局唯一标识.

+

2、调度Corn【必填】:调度执行的时间表达式.

+

3、调度描述【必填】:调度的简述.

+

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

+

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

+
+
+ +
+ + + + <@netCommon.commonFooter /> + + <@netCommon.commonControl /> +
+<@netCommon.commonScript /> + + diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl deleted file mode 100644 index 9ce7eaf..0000000 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl +++ /dev/null @@ -1,76 +0,0 @@ - - - - 调度中心 - <#import "/common/common.macro.ftl" as netCommon> - <@netCommon.commonStyle /> - - -
- - <@netCommon.commonHeader /> - - <@netCommon.commonLeft /> - - -
- -
-

使用教程调度管理平台

- -
- - -
-
-

简介:XXL_JOB

-

基于quartz封装实现的的集群任务调度管理平台.

-

-
-
-

特点:

-

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

-

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

-

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

-
- -
-

分层模型:

-

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

-

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

-

-

-
-

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

-

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

-

》通讯模块:负责调度模块和任务模块之间的通讯.

-

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

-
-
-

-
- -
-

调度属性解析 : 发出HTTP调度请求

-

1、调度Key【必填】:调度信息的全局唯一标识.

-

2、调度Corn【必填】:调度执行的时间表达式.

-

3、调度描述【必填】:调度的简述.

-

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

-

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

-
-
- -
- - - - <@netCommon.commonFooter /> - - <@netCommon.commonControl /> -
-<@netCommon.commonScript /> - - diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl index 62c41fb..456045f 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl @@ -19,10 +19,10 @@
-

调度中心调度管理

+

调度管理调度中心

diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml index 283d68c..7ce7678 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml @@ -81,6 +81,7 @@ WHERE t.job_name = #{jobName} + ORDER BY id DESC LIMIT #{offset}, #{pagesize} diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl index bf6f235..0876507 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl @@ -64,7 +64,8 @@ diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl new file mode 100644 index 0000000..9ce7eaf --- /dev/null +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl @@ -0,0 +1,76 @@ + + + + 调度中心 + <#import "/common/common.macro.ftl" as netCommon> + <@netCommon.commonStyle /> + + +
+ + <@netCommon.commonHeader /> + + <@netCommon.commonLeft /> + + +
+ +
+

使用教程调度管理平台

+ +
+ + +
+
+

简介:XXL_JOB

+

基于quartz封装实现的的集群任务调度管理平台.

+

+
+
+

特点:

+

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

+

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

+

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

+
+ +
+

分层模型:

+

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

+

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

+

+

+
+

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

+

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

+

》通讯模块:负责调度模块和任务模块之间的通讯.

+

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

+
+
+

+
+ +
+

调度属性解析 : 发出HTTP调度请求

+

1、调度Key【必填】:调度信息的全局唯一标识.

+

2、调度Corn【必填】:调度执行的时间表达式.

+

3、调度描述【必填】:调度的简述.

+

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

+

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

+
+
+ +
+ + + + <@netCommon.commonFooter /> + + <@netCommon.commonControl /> +
+<@netCommon.commonScript /> + + diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl deleted file mode 100644 index 9ce7eaf..0000000 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl +++ /dev/null @@ -1,76 +0,0 @@ - - - - 调度中心 - <#import "/common/common.macro.ftl" as netCommon> - <@netCommon.commonStyle /> - - -
- - <@netCommon.commonHeader /> - - <@netCommon.commonLeft /> - - -
- -
-

使用教程调度管理平台

- -
- - -
-
-

简介:XXL_JOB

-

基于quartz封装实现的的集群任务调度管理平台.

-

-
-
-

特点:

-

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

-

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

-

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

-
- -
-

分层模型:

-

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

-

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

-

-

-
-

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

-

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

-

》通讯模块:负责调度模块和任务模块之间的通讯.

-

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

-
-
-

-
- -
-

调度属性解析 : 发出HTTP调度请求

-

1、调度Key【必填】:调度信息的全局唯一标识.

-

2、调度Corn【必填】:调度执行的时间表达式.

-

3、调度描述【必填】:调度的简述.

-

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

-

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

-
-
- -
- - - - <@netCommon.commonFooter /> - - <@netCommon.commonControl /> -
-<@netCommon.commonScript /> - - diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl index 62c41fb..456045f 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl @@ -19,10 +19,10 @@
-

调度中心调度管理

+

调度管理调度中心

diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/index.ftl new file mode 100644 index 0000000..c7e1ace --- /dev/null +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/index.ftl @@ -0,0 +1,89 @@ + + + + 调度日志 + <#import "/common/common.macro.ftl" as netCommon> + <@netCommon.commonStyle /> + + + + + + + + + + + + +
+ + <@netCommon.commonHeader /> + + <@netCommon.commonLeft /> + + +
+ +
+

调度日志调度中心

+ +
+ + +
+
+
+
+
+

调度列表

+
+
+ + + + + + + + + + + + + + + + + + + + + + +
idjobNamejobCronjobClasshandleTimehandleStatus
idjobNamejobCronjobClasshandleTimehandleStatus
+
+
+
+
+
+
+ + + <@netCommon.commonFooter /> + + <@netCommon.commonControl /> +
+ +<@netCommon.commonScript /> +<@netCommon.comAlert /> + + + + + + + diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java index 5523d54..caffe29 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/IndexController.java @@ -1,14 +1,9 @@ package com.xxl.job.controller; -import java.util.List; -import java.util.Map; - import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; -import com.xxl.job.core.util.DynamicSchedulerUtil; - /** * index controller * @author xuxueli 2015-12-19 16:13:16 @@ -16,16 +11,14 @@ @Controller public class IndexController { - @RequestMapping("") + @RequestMapping("/") public String index(Model model) { - List> jobList = DynamicSchedulerUtil.getJobList(); - model.addAttribute("jobList", jobList); - return "job/index"; + return "redirect:job"; } @RequestMapping("/help") public String help(Model model) { - return "job/help"; + return "help"; } } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java index 3866ebb..daa227c 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobController.java @@ -2,6 +2,7 @@ import java.io.UnsupportedEncodingException; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -13,6 +14,7 @@ import org.quartz.Job; import org.quartz.SchedulerException; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -29,6 +31,13 @@ @RequestMapping("/job") public class JobController { + @RequestMapping + public String index(Model model) { + List> jobList = DynamicSchedulerUtil.getJobList(); + model.addAttribute("jobList", jobList); + return "job/index"; + } + @RequestMapping("/add") @ResponseBody public ReturnT add(HttpServletRequest request) { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java index 8110bcb..d82c3ab 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/controller/JobLogController.java @@ -1,11 +1,16 @@ package com.xxl.job.controller; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.xxl.job.core.model.ReturnT; @@ -37,4 +42,30 @@ return ReturnT.FAIL; } + @RequestMapping("/") + public String index(Model model) { + return "joblog/index"; + } + + @RequestMapping("/pageList") + @ResponseBody + public Map pageList(@RequestParam(required = false) String jobName, + @RequestParam(required = false, defaultValue = "0") int start, + @RequestParam(required = false, defaultValue = "10") int length) { + + System.out.println(start); + System.out.println(length); + System.out.println(jobName); + + List list = xxlJobLogDao.pageList(start, length, jobName); + int list_count = xxlJobLogDao.pageListCount(start, length, jobName); + + Map maps = new HashMap(); + maps.put("draw", list_count); // 请求次数 + maps.put("recordsTotal", list_count); // 总记录数 + maps.put("recordsFiltered", list_count);// 过滤后的总记录数 + maps.put("data", list); // 分页列表 + return maps; + } + } diff --git a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml index 283d68c..7ce7678 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/java/com/xxl/job/core/model/mapper/XxlJobLogMapper.xml @@ -81,6 +81,7 @@ WHERE t.job_name = #{jobName} + ORDER BY id DESC LIMIT #{offset}, #{pagesize} diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl index bf6f235..0876507 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl @@ -64,7 +64,8 @@ diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl new file mode 100644 index 0000000..9ce7eaf --- /dev/null +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/help.ftl @@ -0,0 +1,76 @@ + + + + 调度中心 + <#import "/common/common.macro.ftl" as netCommon> + <@netCommon.commonStyle /> + + +
+ + <@netCommon.commonHeader /> + + <@netCommon.commonLeft /> + + +
+ +
+

使用教程调度管理平台

+ +
+ + +
+
+

简介:XXL_JOB

+

基于quartz封装实现的的集群任务调度管理平台.

+

+
+
+

特点:

+

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

+

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

+

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

+
+ +
+

分层模型:

+

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

+

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

+

+

+
+

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

+

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

+

》通讯模块:负责调度模块和任务模块之间的通讯.

+

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

+
+
+

+
+ +
+

调度属性解析 : 发出HTTP调度请求

+

1、调度Key【必填】:调度信息的全局唯一标识.

+

2、调度Corn【必填】:调度执行的时间表达式.

+

3、调度描述【必填】:调度的简述.

+

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

+

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

+
+
+ +
+ + + + <@netCommon.commonFooter /> + + <@netCommon.commonControl /> +
+<@netCommon.commonScript /> + + diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl deleted file mode 100644 index 9ce7eaf..0000000 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/help.ftl +++ /dev/null @@ -1,76 +0,0 @@ - - - - 调度中心 - <#import "/common/common.macro.ftl" as netCommon> - <@netCommon.commonStyle /> - - -
- - <@netCommon.commonHeader /> - - <@netCommon.commonLeft /> - - -
- -
-

使用教程调度管理平台

- -
- - -
-
-

简介:XXL_JOB

-

基于quartz封装实现的的集群任务调度管理平台.

-

-
-
-

特点:

-

1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手.

-

2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效.

-

3、集群:任务信息持久化到mysql中,支持Job服务器集群(高可用),一个任务只会在其中一台服务器上执行.

-
- -
-

分层模型:

-

1、基础:基于quartz封装底层调度层,通过CORN自定义任务执行周期,最终执行自定义JobBean的execute方法,如需多个任务,需要开发多个JobBean实现.

-

2、分层:上述基础调度模型存在一定局限,调度层和任务层耦合,当新任务上线势必影响任务的正常调度,因此规划将调度系统分层为:调度层 + 任务层 + 通讯层.

-

-

-
-

》调度模块:维护任务的调度信息,负责定时/周期性的发出调度请求.

-

》任务模块:具体的任务逻辑,负责接收调度模块的调度请求,执行任务逻辑.

-

》通讯模块:负责调度模块和任务模块之间的通讯.

-

(总而言之,一条完整任务由 “调度信息” 和 “任务信息” 组成.)

-
-
-

-
- -
-

调度属性解析 : 发出HTTP调度请求

-

1、调度Key【必填】:调度信息的全局唯一标识.

-

2、调度Corn【必填】:调度执行的时间表达式.

-

3、调度描述【必填】:调度的简述.

-

4、调度URL【必填】:调度执行时发出HTTP请求的目标URL地址.

-

5、+args【选填】:调度执行时发出HTTP请求的附带的POST参数.

-
-
- -
- - - - <@netCommon.commonFooter /> - - <@netCommon.commonControl /> -
-<@netCommon.commonScript /> - - diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl index 62c41fb..456045f 100644 --- a/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl @@ -19,10 +19,10 @@
-

调度中心调度管理

+

调度管理调度中心

diff --git a/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/index.ftl b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/index.ftl new file mode 100644 index 0000000..c7e1ace --- /dev/null +++ b/xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/index.ftl @@ -0,0 +1,89 @@ + + + + 调度日志 + <#import "/common/common.macro.ftl" as netCommon> + <@netCommon.commonStyle /> + + + + + + + + + + + + +
+ + <@netCommon.commonHeader /> + + <@netCommon.commonLeft /> + + +
+ +
+

调度日志调度中心

+ +
+ + +
+
+
+
+
+

调度列表

+
+
+ + + + + + + + + + + + + + + + + + + + + + +
idjobNamejobCronjobClasshandleTimehandleStatus
idjobNamejobCronjobClasshandleTimehandleStatus
+
+
+
+
+
+
+ + + <@netCommon.commonFooter /> + + <@netCommon.commonControl /> +
+ +<@netCommon.commonScript /> +<@netCommon.comAlert /> + + + + + + + diff --git a/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js b/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js new file mode 100644 index 0000000..efa4f0d --- /dev/null +++ b/xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js @@ -0,0 +1,44 @@ +$(function() { + // init date tables + $("#joblog_list").dataTable({ + "serverSide": true, + "ajax": { + url: base_url + "/joblog/pageList" + }, + "processing" : true, + "deferRender": true, + "columns": [ + { "data": 'id', "bSortable": false, "visible" : true}, + { "data": 'jobName', "bSortable": false}, + { "data": 'jobCron', "bSortable": false}, + { "data": 'jobClass', "bSortable": false}, + { "data": 'handleTime',"bSortable": false}, + { "data": 'handleStatus' , "bSortable": false} + ], + "language" : { + "sProcessing" : "处理中...", + "sLengthMenu" : "每页 _MENU_ 条记录", + "sZeroRecords" : "没有匹配结果", + "sInfo" : "第 _PAGE_ 页 ( 总共 _PAGES_ 页 )", + "sInfoEmpty" : "无记录", + "sInfoFiltered" : "(由 _MAX_ 项结果过滤)", + "sInfoPostFix" : "", + "sSearch" : "搜索:", + "sUrl" : "", + "sEmptyTable" : "表中数据为空", + "sLoadingRecords" : "载入中...", + "sInfoThousands" : ",", + "oPaginate" : { + "sFirst" : "首页", + "sPrevious" : "上页", + "sNext" : "下页", + "sLast" : "末页" + }, + "oAria" : { + "sSortAscending" : ": 以升序排列此列", + "sSortDescending" : ": 以降序排列此列" + } + } + }); + +});