Skip to content

Commit 9b928fa

Browse files
committed
Merge pull request #29 from qq254963746/develop
定时任务在LTS Admin 中的添加和删除
2 parents 1ef1bf4 + 545a9de commit 9b928fa

File tree

21 files changed

+298
-109
lines changed

21 files changed

+298
-109
lines changed

lts-admin/src/main/java/com/lts/job/web/cluster/RegistryService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import com.lts.job.core.util.StringUtils;
1212
import com.lts.job.web.request.NodeRequest;
1313
import com.lts.job.web.support.AppConfigurer;
14-
import com.lts.job.web.support.memorydb.NodeMemDB;
14+
import com.lts.job.web.support.memorydb.NodeMemoryDB;
1515
import org.springframework.beans.factory.InitializingBean;
1616
import org.springframework.beans.factory.annotation.Autowired;
1717
import org.springframework.beans.factory.annotation.Qualifier;
@@ -27,7 +27,7 @@
2727
public class RegistryService implements InitializingBean {
2828

2929
private final ConcurrentHashSet<String/*clusterName*/> MAP = new ConcurrentHashSet<String>();
30-
private NodeMemDB nodeMemDB = new NodeMemDB();
30+
private NodeMemoryDB nodeMemDB = new NodeMemoryDB();
3131

3232
@Autowired
3333
@Qualifier("application")

lts-admin/src/main/java/com/lts/job/web/controller/AbstractController.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.lts.job.web.controller;
22

33
import com.lts.job.web.support.DateEditor;
4+
import com.lts.job.web.support.MapEditor;
45
import org.springframework.web.bind.ServletRequestDataBinder;
56
import org.springframework.web.bind.annotation.InitBinder;
67

78
import javax.servlet.http.HttpServletRequest;
89
import java.util.Date;
10+
import java.util.Map;
911

1012
/**
1113
* @author Robert HG (254963746@qq.com) on 5/9/15.
@@ -17,6 +19,7 @@ protected void initBinder(HttpServletRequest request,
1719
ServletRequestDataBinder binder) throws Exception {
1820
//对于需要转换为Date类型的属性,使用DateEditor进行处理
1921
binder.registerCustomEditor(Date.class, new DateEditor());
22+
binder.registerCustomEditor(Map.class, "extParams", new MapEditor());
2023
}
2124

2225
}

lts-admin/src/main/java/com/lts/job/web/controller/api/JobQueueApiController.java

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,21 @@
22

33
import com.lts.job.core.domain.JobQueueRequest;
44
import com.lts.job.core.domain.PageResponse;
5+
import com.lts.job.core.exception.CronException;
6+
import com.lts.job.core.support.CronExpression;
57
import com.lts.job.core.util.CollectionUtils;
8+
import com.lts.job.core.util.StringUtils;
69
import com.lts.job.queue.domain.JobPo;
710
import com.lts.job.web.cluster.AdminApplication;
811
import com.lts.job.web.controller.AbstractController;
912
import com.lts.job.web.vo.RestfulResponse;
1013
import org.springframework.beans.factory.annotation.Autowired;
14+
import org.springframework.web.bind.annotation.RequestBody;
1115
import org.springframework.web.bind.annotation.RequestMapping;
1216
import org.springframework.web.bind.annotation.RestController;
1317

1418
import java.util.List;
19+
import java.util.Map;
1520

1621
/**
1722
* @author Robert HG (254963746@qq.com) on 6/6/15.
@@ -23,7 +28,7 @@ public class JobQueueApiController extends AbstractController {
2328
AdminApplication application;
2429

2530
@RequestMapping("/job-queue/cron-job-get")
26-
public RestfulResponse getCronJobList(JobQueueRequest request) {
31+
public RestfulResponse cronJobGet(JobQueueRequest request) {
2732
PageResponse<JobPo> pageResponse = application.getCronJobQueue().pageSelect(request);
2833
RestfulResponse response = new RestfulResponse();
2934
response.setSuccess(true);
@@ -33,7 +38,7 @@ public RestfulResponse getCronJobList(JobQueueRequest request) {
3338
}
3439

3540
@RequestMapping("/job-queue/executable-job-get")
36-
public RestfulResponse getExecutableJobList(JobQueueRequest request) {
41+
public RestfulResponse executableJobGet(JobQueueRequest request) {
3742
PageResponse<JobPo> pageResponse = application.getExecutableJobQueue().pageSelect(request);
3843
RestfulResponse response = new RestfulResponse();
3944
response.setSuccess(true);
@@ -43,12 +48,43 @@ public RestfulResponse getExecutableJobList(JobQueueRequest request) {
4348
}
4449

4550
@RequestMapping("/job-queue/executing-job-get")
46-
public RestfulResponse getExecutingJobList(JobQueueRequest request) {
51+
public RestfulResponse executingJobGet(JobQueueRequest request) {
4752
PageResponse<JobPo> pageResponse = application.getExecutingJobQueue().pageSelect(request);
4853
RestfulResponse response = new RestfulResponse();
4954
response.setSuccess(true);
5055
response.setResults(pageResponse.getResults());
5156
response.setRows(pageResponse.getRows());
5257
return response;
5358
}
59+
60+
@RequestMapping("/job-queue/cron-job-update")
61+
public RestfulResponse cronJobUpdate(JobQueueRequest request) {
62+
RestfulResponse response = new RestfulResponse();
63+
// 检查参数
64+
// 1. 检测 cronExpression是否是正确的
65+
if (StringUtils.isNotEmpty(request.getCronExpression())) {
66+
if (!CronExpression.isValidExpression(request.getCronExpression())) {
67+
response.setSuccess(false);
68+
response.setMsg("请输入正确的 CronExpression!");
69+
return response;
70+
}
71+
}
72+
application.getCronJobQueue().selectiveUpdate(request);
73+
response.setSuccess(true);
74+
return response;
75+
}
76+
77+
@RequestMapping("/job-queue/cron-job-delete")
78+
public RestfulResponse cronJobDelete(JobQueueRequest request) {
79+
RestfulResponse response = new RestfulResponse();
80+
if (StringUtils.isEmpty(request.getJobId())) {
81+
response.setSuccess(false);
82+
response.setMsg("JobId 必须传!");
83+
return response;
84+
}
85+
application.getCronJobQueue().remove(request.getJobId());
86+
response.setSuccess(true);
87+
return response;
88+
}
89+
5490
}

lts-admin/src/main/java/com/lts/job/web/support/AppConfigurer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class AppConfigurer {
1212
static {
1313
try {
1414
List<String> configList = new ArrayList<String>(2);
15-
configList.add("config");
15+
configList.add("lts-admin-config");
1616
Locale locale = Locale.getDefault();
1717
for (String config : configList) {
1818
try {
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.lts.job.web.support;
2+
3+
import com.alibaba.fastjson.TypeReference;
4+
import com.lts.job.core.util.JSONUtils;
5+
import org.springframework.util.StringUtils;
6+
7+
import java.beans.PropertyEditorSupport;
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
11+
/**
12+
* Robert HG (254963746@qq.com) on 6/5/15.
13+
*/
14+
public class MapEditor extends PropertyEditorSupport {
15+
16+
public MapEditor() {
17+
}
18+
19+
@Override
20+
public void setAsText(String text) throws IllegalArgumentException {
21+
if (!StringUtils.hasText(text)) {
22+
setValue(null);
23+
} else {
24+
setValue(JSONUtils.parse(text, new TypeReference<HashMap<String, String>>() {
25+
}));
26+
}
27+
}
28+
29+
@Override
30+
public String getAsText() {
31+
Map value = (Map) getValue();
32+
33+
if (value == null) {
34+
return "";
35+
}
36+
return JSONUtils.toJSONString(value);
37+
}
38+
}

lts-admin/src/main/java/com/lts/job/web/support/memorydb/MemDB.java renamed to lts-admin/src/main/java/com/lts/job/web/support/memorydb/MemoryDB.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
*
1212
* @author Robert HG (254963746@qq.com) on 6/6/15.
1313
*/
14-
public abstract class MemDB {
14+
public abstract class MemoryDB {
1515

1616
private SqlTemplate sqlTemplate;
1717
private AtomicBoolean init = new AtomicBoolean(false);
1818

19-
public MemDB() {
19+
public MemoryDB() {
2020
if (init.compareAndSet(false, true)) {
2121
Config config = new Config();
2222
config.setParameter("jdbc.datasource.provider", "hsqldb");

lts-admin/src/main/java/com/lts/job/web/support/memorydb/NodeMemDB.java renamed to lts-admin/src/main/java/com/lts/job/web/support/memorydb/NodeMemoryDB.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
/**
1818
* @author Robert HG (254963746@qq.com) on 6/6/15.
1919
*/
20-
public class NodeMemDB extends MemDB {
20+
public class NodeMemoryDB extends MemoryDB {
2121

22-
private static final Logger LOGGER = LoggerFactory.getLogger(NodeMemDB.class);
22+
private static final Logger LOGGER = LoggerFactory.getLogger(NodeMemoryDB.class);
2323

2424
private String insertSQL = "INSERT INTO lts_node " +
2525
"( identity, " +
@@ -35,7 +35,7 @@ public class NodeMemDB extends MemDB {
3535

3636
private String deleteSQL = "DELETE FROM lts_node where identity = ?";
3737

38-
public NodeMemDB() {
38+
public NodeMemoryDB() {
3939
createTable();
4040
}
4141

File renamed without changes.

lts-admin/src/main/webapp/assets/css/lts.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
/* 有关间距、空隙 */
2+
.hidden{
3+
display: none;
4+
}
25
.nomargin {
36
margin: 0 !important;
47
}

0 commit comments

Comments
 (0)