Sfoglia il codice sorgente

任务组,改为执行器

xueli.xue 9 anni fa
parent
commit
eb369ec67e

+ 11 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java Vedi File

1
 package com.xxl.job.admin.controller;
1
 package com.xxl.job.admin.controller;
2
 
2
 
3
-import com.xxl.job.admin.core.constant.Constants.JobGroupEnum;
4
 import com.xxl.job.admin.core.model.ReturnT;
3
 import com.xxl.job.admin.core.model.ReturnT;
4
+import com.xxl.job.admin.core.model.XxlJobGroup;
5
+import com.xxl.job.admin.dao.IXxlJobGroupDao;
5
 import com.xxl.job.admin.service.IXxlJobService;
6
 import com.xxl.job.admin.service.IXxlJobService;
6
 import org.springframework.stereotype.Controller;
7
 import org.springframework.stereotype.Controller;
7
 import org.springframework.ui.Model;
8
 import org.springframework.ui.Model;
10
 import org.springframework.web.bind.annotation.ResponseBody;
11
 import org.springframework.web.bind.annotation.ResponseBody;
11
 
12
 
12
 import javax.annotation.Resource;
13
 import javax.annotation.Resource;
14
+import java.util.List;
13
 import java.util.Map;
15
 import java.util.Map;
14
 
16
 
15
 /**
17
 /**
19
 @Controller
21
 @Controller
20
 @RequestMapping("/jobinfo")
22
 @RequestMapping("/jobinfo")
21
 public class JobInfoController {
23
 public class JobInfoController {
22
-	
24
+
25
+	@Resource
26
+	private IXxlJobGroupDao xxlJobGroupDao;
23
 	@Resource
27
 	@Resource
24
 	private IXxlJobService xxlJobService;
28
 	private IXxlJobService xxlJobService;
25
 	
29
 	
26
 	@RequestMapping
30
 	@RequestMapping
27
 	public String index(Model model) {
31
 	public String index(Model model) {
28
-		model.addAttribute("JobGroupList", JobGroupEnum.values());			// 任务组列表
32
+
33
+		// 任务组
34
+		List<XxlJobGroup> jobGroupList =  xxlJobGroupDao.findAll();
35
+
36
+		model.addAttribute("JobGroupList", jobGroupList);
29
 		return "jobinfo/jobinfo.index";
37
 		return "jobinfo/jobinfo.index";
30
 	}
38
 	}
31
 	
39
 	

+ 11 - 4
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java Vedi File

1
 package com.xxl.job.admin.controller;
1
 package com.xxl.job.admin.controller;
2
 
2
 
3
-import com.xxl.job.admin.core.constant.Constants.JobGroupEnum;
4
 import com.xxl.job.admin.core.model.ReturnT;
3
 import com.xxl.job.admin.core.model.ReturnT;
4
+import com.xxl.job.admin.core.model.XxlJobGroup;
5
 import com.xxl.job.admin.core.model.XxlJobInfo;
5
 import com.xxl.job.admin.core.model.XxlJobInfo;
6
 import com.xxl.job.admin.core.model.XxlJobLog;
6
 import com.xxl.job.admin.core.model.XxlJobLog;
7
+import com.xxl.job.admin.dao.IXxlJobGroupDao;
7
 import com.xxl.job.admin.dao.IXxlJobInfoDao;
8
 import com.xxl.job.admin.dao.IXxlJobInfoDao;
8
 import com.xxl.job.admin.dao.IXxlJobLogDao;
9
 import com.xxl.job.admin.dao.IXxlJobLogDao;
9
 import com.xxl.job.core.router.HandlerRouter.ActionRepository;
10
 import com.xxl.job.core.router.HandlerRouter.ActionRepository;
34
 public class JobLogController {
35
 public class JobLogController {
35
 
36
 
36
 	@Resource
37
 	@Resource
37
-	public IXxlJobLogDao xxlJobLogDao;
38
+	private IXxlJobGroupDao xxlJobGroupDao;
38
 	@Resource
39
 	@Resource
39
 	public IXxlJobInfoDao xxlJobInfoDao;
40
 	public IXxlJobInfoDao xxlJobInfoDao;
40
-	
41
+	@Resource
42
+	public IXxlJobLogDao xxlJobLogDao;
43
+
41
 	@RequestMapping
44
 	@RequestMapping
42
 	public String index(Model model, String jobGroup, String jobName) {
45
 	public String index(Model model, String jobGroup, String jobName) {
46
+
47
+		// 任务组
48
+		List<XxlJobGroup> jobGroupList =  xxlJobGroupDao.findAll();
49
+
43
 		model.addAttribute("jobGroup", jobGroup);
50
 		model.addAttribute("jobGroup", jobGroup);
44
 		model.addAttribute("jobName", jobName);
51
 		model.addAttribute("jobName", jobName);
45
-		model.addAttribute("JobGroupList", JobGroupEnum.values());
52
+		model.addAttribute("JobGroupList", jobGroupList);
46
 		return "joblog/joblog.index";
53
 		return "joblog/joblog.index";
47
 	}
54
 	}
48
 
55
 

+ 0 - 32
xxl-job-admin/src/main/java/com/xxl/job/admin/core/constant/Constants.java Vedi File

1
-package com.xxl.job.admin.core.constant;
2
-
3
-/**
4
- * job group
5
- * @author xuxueli 2016-1-15 14:23:05
6
- */
7
-public class Constants {
8
-	
9
-	public enum JobGroupEnum{
10
-		defaults("默认"),
11
-		waimai("外卖"),
12
-		movie("电影");
13
-		private String desc;
14
-		private JobGroupEnum(String desc){
15
-			this.desc = desc;
16
-		}
17
-		public String getDesc() {
18
-			return desc;
19
-		}
20
-		public static JobGroupEnum match(String name){
21
-			if (name==null || name.trim().length()==0) {
22
-				return null;
23
-			}
24
-			for (JobGroupEnum group : JobGroupEnum.values()) {
25
-				if (group.name().equals(name)) {
26
-					return group;
27
-				}
28
-			}
29
-			return null;
30
-		}
31
-	}
32
-}

+ 3 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java Vedi File

1
 package com.xxl.job.admin.core.thread;
1
 package com.xxl.job.admin.core.thread;
2
 
2
 
3
-import com.xxl.job.admin.core.constant.Constants;
3
+import com.xxl.job.admin.core.model.XxlJobGroup;
4
 import com.xxl.job.admin.core.model.XxlJobInfo;
4
 import com.xxl.job.admin.core.model.XxlJobInfo;
5
 import com.xxl.job.admin.core.model.XxlJobLog;
5
 import com.xxl.job.admin.core.model.XxlJobLog;
6
 import com.xxl.job.admin.core.util.DynamicSchedulerUtil;
6
 import com.xxl.job.admin.core.util.DynamicSchedulerUtil;
59
 										Set<String> emailSet = new HashSet<String>(Arrays.asList(info.getAlarmEmail().split(",")));
59
 										Set<String> emailSet = new HashSet<String>(Arrays.asList(info.getAlarmEmail().split(",")));
60
 										for (String email: emailSet) {
60
 										for (String email: emailSet) {
61
 											String title = "《调度监控报警-任务调度中心XXL-JOB》";
61
 											String title = "《调度监控报警-任务调度中心XXL-JOB》";
62
-											String content = MessageFormat.format("任务调度失败, 任务组:{0}, 任务描述:{1}.",
63
-													Constants.JobGroupEnum.match(info.getJobGroup()).getDesc(), info.getJobDesc());
62
+											XxlJobGroup group = DynamicSchedulerUtil.xxlJobGroupDao.load(info.getJobGroup());
63
+											String content = MessageFormat.format("任务调度失败, 执行器名称:{0}, 任务描述:{1}.", group!=null?group.getTitle():"null", info.getJobDesc());
64
 											MailUtil.sendMail(email, title, content, false, null);
64
 											MailUtil.sendMail(email, title, content, false, null);
65
 										}
65
 										}
66
 									}
66
 									}

+ 3 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java Vedi File

4
 import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean;
4
 import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean;
5
 import com.xxl.job.admin.core.model.XxlJobInfo;
5
 import com.xxl.job.admin.core.model.XxlJobInfo;
6
 import com.xxl.job.admin.core.thread.JobRegistryHelper;
6
 import com.xxl.job.admin.core.thread.JobRegistryHelper;
7
+import com.xxl.job.admin.dao.IXxlJobGroupDao;
7
 import com.xxl.job.admin.dao.IXxlJobInfoDao;
8
 import com.xxl.job.admin.dao.IXxlJobInfoDao;
8
 import com.xxl.job.admin.dao.IXxlJobLogDao;
9
 import com.xxl.job.admin.dao.IXxlJobLogDao;
9
 import com.xxl.job.admin.dao.IXxlJobRegistryDao;
10
 import com.xxl.job.admin.dao.IXxlJobRegistryDao;
66
     public static IXxlJobLogDao xxlJobLogDao;
67
     public static IXxlJobLogDao xxlJobLogDao;
67
     public static IXxlJobInfoDao xxlJobInfoDao;
68
     public static IXxlJobInfoDao xxlJobInfoDao;
68
     public static IXxlJobRegistryDao xxlJobRegistryDao;
69
     public static IXxlJobRegistryDao xxlJobRegistryDao;
70
+    public static IXxlJobGroupDao xxlJobGroupDao;
69
 
71
 
70
     @Override
72
     @Override
71
 	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
73
 	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
72
 		DynamicSchedulerUtil.xxlJobLogDao = applicationContext.getBean(IXxlJobLogDao.class);
74
 		DynamicSchedulerUtil.xxlJobLogDao = applicationContext.getBean(IXxlJobLogDao.class);
73
 		DynamicSchedulerUtil.xxlJobInfoDao = applicationContext.getBean(IXxlJobInfoDao.class);
75
 		DynamicSchedulerUtil.xxlJobInfoDao = applicationContext.getBean(IXxlJobInfoDao.class);
74
         DynamicSchedulerUtil.xxlJobRegistryDao = applicationContext.getBean(IXxlJobRegistryDao.class);
76
         DynamicSchedulerUtil.xxlJobRegistryDao = applicationContext.getBean(IXxlJobRegistryDao.class);
77
+        DynamicSchedulerUtil.xxlJobGroupDao = applicationContext.getBean(IXxlJobGroupDao.class);
75
 	}
78
 	}
76
     
79
     
77
 	@Override
80
 	@Override

+ 10 - 5
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java Vedi File

1
 package com.xxl.job.admin.service.impl;
1
 package com.xxl.job.admin.service.impl;
2
 
2
 
3
-import com.xxl.job.admin.core.constant.Constants.JobGroupEnum;
4
 import com.xxl.job.admin.core.model.ReturnT;
3
 import com.xxl.job.admin.core.model.ReturnT;
4
+import com.xxl.job.admin.core.model.XxlJobGroup;
5
 import com.xxl.job.admin.core.model.XxlJobInfo;
5
 import com.xxl.job.admin.core.model.XxlJobInfo;
6
 import com.xxl.job.admin.core.util.DynamicSchedulerUtil;
6
 import com.xxl.job.admin.core.util.DynamicSchedulerUtil;
7
+import com.xxl.job.admin.dao.IXxlJobGroupDao;
7
 import com.xxl.job.admin.dao.IXxlJobInfoDao;
8
 import com.xxl.job.admin.dao.IXxlJobInfoDao;
8
 import com.xxl.job.admin.dao.IXxlJobLogDao;
9
 import com.xxl.job.admin.dao.IXxlJobLogDao;
9
 import com.xxl.job.admin.dao.IXxlJobLogGlueDao;
10
 import com.xxl.job.admin.dao.IXxlJobLogGlueDao;
32
 	private static Logger logger = LoggerFactory.getLogger(XxlJobServiceImpl.class);
33
 	private static Logger logger = LoggerFactory.getLogger(XxlJobServiceImpl.class);
33
 
34
 
34
 	@Resource
35
 	@Resource
36
+	private IXxlJobGroupDao xxlJobGroupDao;
37
+	@Resource
35
 	private IXxlJobInfoDao xxlJobInfoDao;
38
 	private IXxlJobInfoDao xxlJobInfoDao;
36
 	@Resource
39
 	@Resource
37
 	public IXxlJobLogDao xxlJobLogDao;
40
 	public IXxlJobLogDao xxlJobLogDao;
65
 			String executorAppname, String executorAddress,	String executorHandler, String executorParam,
68
 			String executorAppname, String executorAddress,	String executorHandler, String executorParam,
66
 			int glueSwitch, String glueSource, String glueRemark, String childJobKey) {
69
 			int glueSwitch, String glueSource, String glueRemark, String childJobKey) {
67
 		// valid
70
 		// valid
68
-		if (JobGroupEnum.match(jobGroup) == null) {
69
-			return new ReturnT<String>(500, "请选择“任务组”");
71
+		XxlJobGroup group = xxlJobGroupDao.load(jobGroup);
72
+		if (group == null) {
73
+			return new ReturnT<String>(500, "请选择“执行器”");
70
 		}
74
 		}
71
 		if (!CronExpression.isValidExpression(jobCron)) {
75
 		if (!CronExpression.isValidExpression(jobCron)) {
72
 			return new ReturnT<String>(500, "请输入格式正确的“Cron”");
76
 			return new ReturnT<String>(500, "请输入格式正确的“Cron”");
153
 			String executorAppname, String executorAddress, String executorHandler, String executorParam, int glueSwitch, String childJobKey) {
157
 			String executorAppname, String executorAddress, String executorHandler, String executorParam, int glueSwitch, String childJobKey) {
154
 
158
 
155
 		// valid
159
 		// valid
156
-		if (JobGroupEnum.match(jobGroup) == null) {
157
-			return new ReturnT<String>(500, "请选择“任务组”");
160
+		XxlJobGroup group = xxlJobGroupDao.load(jobGroup);
161
+		if (group == null) {
162
+			return new ReturnT<String>(500, "请选择“执行器”");
158
 		}
163
 		}
159
 		if (StringUtils.isBlank(jobName)) {
164
 		if (StringUtils.isBlank(jobName)) {
160
 			return new ReturnT<String>(500, "请输入“任务名”");
165
 			return new ReturnT<String>(500, "请输入“任务名”");

+ 5 - 5
xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl Vedi File

40
 	    	<div class="row">
40
 	    	<div class="row">
41
 	    		<div class="col-xs-4">
41
 	    		<div class="col-xs-4">
42
 	              	<div class="input-group">
42
 	              	<div class="input-group">
43
-	                	<span class="input-group-addon">任务组</span>
43
+	                	<span class="input-group-addon">执行器</span>
44
                 		<select class="form-control" id="jobGroup" >
44
                 		<select class="form-control" id="jobGroup" >
45
                 			<#list JobGroupList as group>
45
                 			<#list JobGroupList as group>
46
-                				<option value="${group}" >${group.desc}</option>
46
+                				<option value="${group.appName}" >${group.title}</option>
47
                 			</#list>
47
                 			</#list>
48
 	                  	</select>
48
 	                  	</select>
49
 	              	</div>
49
 	              	</div>
115
          	<div class="modal-body">
115
          	<div class="modal-body">
116
 				<form class="form-horizontal form" role="form" >
116
 				<form class="form-horizontal form" role="form" >
117
 					<div class="form-group">
117
 					<div class="form-group">
118
-						<label for="firstname" class="col-sm-2 control-label">任务组<font color="red">*</font></label>
118
+						<label for="firstname" class="col-sm-2 control-label">执行器<font color="red">*</font></label>
119
 						<div class="col-sm-4">
119
 						<div class="col-sm-4">
120
 							<select class="form-control" name="jobGroup" >
120
 							<select class="form-control" name="jobGroup" >
121
 		            			<#list JobGroupList as group>
121
 		            			<#list JobGroupList as group>
122
-		            				<option value="${group}" >${group.desc}</option>
122
+		            				<option value="${group.appName}" >${group.title}</option>
123
 		            			</#list>
123
 		            			</#list>
124
 		                  	</select>
124
 		                  	</select>
125
 						</div>
125
 						</div>
207
          	<div class="modal-body">
207
          	<div class="modal-body">
208
 				<form class="form-horizontal form" role="form" >
208
 				<form class="form-horizontal form" role="form" >
209
 					<div class="form-group">
209
 					<div class="form-group">
210
-                        <label for="firstname" class="col-sm-2 control-label">任务组<font color="red">*</font></label>
210
+                        <label for="firstname" class="col-sm-2 control-label">执行器<font color="red">*</font></label>
211
                         <div class="col-sm-4">
211
                         <div class="col-sm-4">
212
 							<input type="text" class="form-control jobGroupTitle" maxlength="50" readonly >
212
 							<input type="text" class="form-control jobGroupTitle" maxlength="50" readonly >
213
 						</div>
213
 						</div>

+ 2 - 2
xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl Vedi File

34
 	    	<div class="row">
34
 	    	<div class="row">
35
 	    		<div class="col-xs-3">
35
 	    		<div class="col-xs-3">
36
  					<div class="input-group">
36
  					<div class="input-group">
37
-	                	<span class="input-group-addon">任务组</span>
37
+	                	<span class="input-group-addon">执行器</span>
38
                 		<select class="form-control" id="jobGroup"  paramVal="${jobGroup}" >
38
                 		<select class="form-control" id="jobGroup"  paramVal="${jobGroup}" >
39
                             <option value="" selected>请选择</option>
39
                             <option value="" selected>请选择</option>
40
                 			<#list JobGroupList as group>
40
                 			<#list JobGroupList as group>
41
-                				<option value="${group}" <#if jobGroup == group && false>selected</#if> >${group.desc}</option>
41
+                				<option value="${group.appName}" <#if jobGroup == group.appName && false>selected</#if> >${group.title}</option>
42
                 			</#list>
42
                 			</#list>
43
 	                  	</select>
43
 	                  	</select>
44
 	              	</div>
44
 	              	</div>