master
xueli.xue 9 years ago
parent 65243e7649
commit 51259d8c8e
  1. 8
      xxl-job-admin/src/main/java/com/xxl/controller/IndexController.java
  2. 30
      xxl-job-admin/src/main/java/com/xxl/quartz/DynamicSchedulerUtil.java
  3. 69
      xxl-job-admin/src/main/webapp/WEB-INF/template/job/index.ftl

@ -1,8 +1,8 @@
package com.xxl.controller;
import java.util.Set;
import java.util.List;
import java.util.Map;
import org.quartz.JobKey;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@ -16,8 +16,8 @@ public class IndexController {
@RequestMapping("index")
public String index(Model model) {
Set<JobKey> list = DynamicSchedulerUtil.getJobKeys();
model.addAttribute("jobList", list);
List<Map<String, Object>> jobList = DynamicSchedulerUtil.getJobList();
model.addAttribute("jobList", jobList);
return "job/index";
}

@ -1,6 +1,9 @@
package com.xxl.quartz;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -38,21 +41,30 @@ public final class DynamicSchedulerUtil implements InitializingBean {
}
// getJobKeys
public static Set<JobKey> getJobKeys(){
public static List<Map<String, Object>> getJobList(){
List<Map<String, Object>> jobList = new ArrayList<Map<String,Object>>();
try {
String groupName = scheduler.getJobGroupNames().get(0);
return scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName));
Set<JobKey> jobKeys = scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName));
if (jobKeys!=null && jobKeys.size()>0) {
for (JobKey jobKey : jobKeys) {
TriggerKey triggerKey = TriggerKey.triggerKey(jobKey.getName(), Scheduler.DEFAULT_GROUP);
Trigger trigger = scheduler.getTrigger(triggerKey);
JobDetail jobDetail = scheduler.getJobDetail(jobKey);
Map<String, Object> jobMap = new HashMap<String, Object>();
jobMap.put("TriggerKey", triggerKey);
jobMap.put("Trigger", trigger);
jobMap.put("JobDetail", jobDetail);
jobList.add(jobMap);
}
}
} catch (SchedulerException e) {
e.printStackTrace();
return null;
}
}
public static void getJobDetail(String triggerKeyName){
// TriggerKey : name + group
String group = Scheduler.DEFAULT_GROUP;
TriggerKey triggerKey = TriggerKey.triggerKey(triggerKeyName, group);
return jobList;
}
// addJob 新增

@ -4,6 +4,9 @@
<title>调度中心</title>
<#import "/common/common.macro.ftl" as netCommon>
<@netCommon.commonStyle />
<!-- DataTables -->
<link rel="stylesheet" href="${request.contextPath}/static/adminlte/plugins/datatables/dataTables.bootstrap.css">
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
@ -24,20 +27,51 @@
</section>
<!-- Main content -->
<section class="content">
<div class="callout callout-info">
<h4>在线任务:</h4>
<#if jobList?exists && jobList?size gt 0>
<#list jobList as item>
<p>${item}</p>
</#list>
</#if>
</div>
</section>
<!-- /.content -->
<section class="content">
<div class="row">
<div class="col-xs-12">
<div class="box">
<div class="box-header"><h3 class="box-title">任务列表</h3></div>
<div class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>任务ID</th>
<th>cron</th>
<th>Job类路径</th>
<th>简介</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<#if jobList?exists && jobList?size gt 0>
<#list jobList as item>
<tr>
<td>${item['TriggerKey'].name}</td>
<td>${item['Trigger'].cronExpression}</td>
<td>${item['JobDetail'].jobClass}</td>
<td>-</td>
<td>X</td>
</tr>
</#list>
</#if>
</tbody>
<tfoot>
<tr>
<th>任务ID</th>
<th>cron</th>
<th>Job类路径</th>
<th>简介</th>
<th>操作</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
</section>
</div>
<!-- /.content-wrapper -->
<!-- footer -->
<@netCommon.commonFooter />
@ -45,5 +79,14 @@
<@netCommon.commonControl />
</div>
<@netCommon.commonScript />
<!-- DataTables -->
<script src="${request.contextPath}/static/adminlte/plugins/datatables/jquery.dataTables.min.js"></script>
<script src="${request.contextPath}/static/adminlte/plugins/datatables/dataTables.bootstrap.min.js"></script>
<!-- page script -->
<script>
$(function () {
$("#example1").DataTable();
});
</script>
</body>
</html>

Loading…
Cancel
Save