diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index da1ee062..23fa8360 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -1406,7 +1406,9 @@ Header: XXL-JOB-ACCESS-TOKEN : {请求令牌} 请求数据格式如下,放置在 RequestBody 中,JSON格式: - 1 // 任务ID + { + "jobId":1 // 任务ID + } 响应数据格式: { @@ -1459,7 +1461,10 @@ Header: XXL-JOB-ACCESS-TOKEN : {请求令牌} 请求数据格式如下,放置在 RequestBody 中,JSON格式: - 1 // 任务ID + { + "jobId":1 // 任务ID + } + 响应数据格式: { diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java index c8bffc7d..70e62ae8 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java @@ -10,6 +10,7 @@ import com.xxl.job.admin.dao.XxlJobGroupDao; import com.xxl.job.admin.dao.XxlJobInfoDao; import com.xxl.job.admin.dao.XxlJobLogDao; import com.xxl.job.core.biz.ExecutorBiz; +import com.xxl.job.core.biz.model.KillParam; import com.xxl.job.core.biz.model.LogParam; import com.xxl.job.core.biz.model.LogResult; import com.xxl.job.core.biz.model.ReturnT; @@ -172,7 +173,7 @@ public class JobLogController { ReturnT runResult = null; try { ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress()); - runResult = executorBiz.kill(jobInfo.getId()); + runResult = executorBiz.kill(new KillParam(jobInfo.getId())); } catch (Exception e) { logger.error(e.getMessage(), e); runResult = new ReturnT(500, e.getMessage()); diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java index 26015991..868560fc 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java @@ -4,6 +4,7 @@ import com.xxl.job.admin.core.scheduler.XxlJobScheduler; import com.xxl.job.admin.core.route.ExecutorRouter; import com.xxl.job.admin.core.util.I18nUtil; import com.xxl.job.core.biz.ExecutorBiz; +import com.xxl.job.core.biz.model.IdleBeatParam; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.biz.model.TriggerParam; @@ -22,7 +23,7 @@ public class ExecutorRouteBusyover extends ExecutorRouter { ReturnT idleBeatResult = null; try { ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address); - idleBeatResult = executorBiz.idleBeat(triggerParam.getJobId()); + idleBeatResult = executorBiz.idleBeat(new IdleBeatParam(triggerParam.getJobId())); } catch (Exception e) { logger.error(e.getMessage(), e); idleBeatResult = new ReturnT(ReturnT.FAIL_CODE, ""+e ); diff --git a/xxl-job-admin/src/test/java/com/xxl/job/executorbiz/ExecutorBizTest.java b/xxl-job-admin/src/test/java/com/xxl/job/executorbiz/ExecutorBizTest.java index 0f080946..746a7080 100644 --- a/xxl-job-admin/src/test/java/com/xxl/job/executorbiz/ExecutorBizTest.java +++ b/xxl-job-admin/src/test/java/com/xxl/job/executorbiz/ExecutorBizTest.java @@ -2,10 +2,7 @@ package com.xxl.job.executorbiz; import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.client.ExecutorBizClient; -import com.xxl.job.core.biz.model.LogParam; -import com.xxl.job.core.biz.model.LogResult; -import com.xxl.job.core.biz.model.ReturnT; -import com.xxl.job.core.biz.model.TriggerParam; +import com.xxl.job.core.biz.model.*; import com.xxl.job.core.enums.ExecutorBlockStrategyEnum; import com.xxl.job.core.glue.GlueTypeEnum; import org.junit.Assert; @@ -42,7 +39,7 @@ public class ExecutorBizTest { final int jobId = 0; // Act - final ReturnT retval = executorBiz.idleBeat(jobId); + final ReturnT retval = executorBiz.idleBeat(new IdleBeatParam(jobId)); // Assert result Assert.assertNotNull(retval); @@ -81,7 +78,7 @@ public class ExecutorBizTest { final int jobId = 0; // Act - final ReturnT retval = executorBiz.kill(jobId); + final ReturnT retval = executorBiz.kill(new KillParam(jobId)); // Assert result Assert.assertNotNull(retval); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/ExecutorBiz.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/ExecutorBiz.java index 401ea9f5..986358fc 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/ExecutorBiz.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/ExecutorBiz.java @@ -1,9 +1,6 @@ package com.xxl.job.core.biz; -import com.xxl.job.core.biz.model.LogParam; -import com.xxl.job.core.biz.model.LogResult; -import com.xxl.job.core.biz.model.ReturnT; -import com.xxl.job.core.biz.model.TriggerParam; +import com.xxl.job.core.biz.model.*; /** * Created by xuxueli on 17/3/1. @@ -19,10 +16,10 @@ public interface ExecutorBiz { /** * idle beat * - * @param jobId + * @param idleBeatParam * @return */ - public ReturnT idleBeat(int jobId); + public ReturnT idleBeat(IdleBeatParam idleBeatParam); /** * run @@ -33,10 +30,10 @@ public interface ExecutorBiz { /** * kill - * @param jobId + * @param killParam * @return */ - public ReturnT kill(int jobId); + public ReturnT kill(KillParam killParam); /** * log diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/client/ExecutorBizClient.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/client/ExecutorBizClient.java index 7c063de4..48d8e625 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/client/ExecutorBizClient.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/client/ExecutorBizClient.java @@ -1,10 +1,7 @@ package com.xxl.job.core.biz.client; import com.xxl.job.core.biz.ExecutorBiz; -import com.xxl.job.core.biz.model.LogParam; -import com.xxl.job.core.biz.model.LogResult; -import com.xxl.job.core.biz.model.ReturnT; -import com.xxl.job.core.biz.model.TriggerParam; +import com.xxl.job.core.biz.model.*; import com.xxl.job.core.util.XxlJobRemotingUtil; /** @@ -37,8 +34,8 @@ public class ExecutorBizClient implements ExecutorBiz { } @Override - public ReturnT idleBeat(int jobId){ - return XxlJobRemotingUtil.postBody(addressUrl+"idleBeat", accessToken, timeout, jobId, String.class); + public ReturnT idleBeat(IdleBeatParam idleBeatParam){ + return XxlJobRemotingUtil.postBody(addressUrl+"idleBeat", accessToken, timeout, idleBeatParam, String.class); } @Override @@ -47,8 +44,8 @@ public class ExecutorBizClient implements ExecutorBiz { } @Override - public ReturnT kill(int jobId) { - return XxlJobRemotingUtil.postBody(addressUrl + "kill", accessToken, timeout, jobId, String.class); + public ReturnT kill(KillParam killParam) { + return XxlJobRemotingUtil.postBody(addressUrl + "kill", accessToken, timeout, killParam, String.class); } @Override diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java index 91363fdb..8bdf7093 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/impl/ExecutorBizImpl.java @@ -1,10 +1,7 @@ package com.xxl.job.core.biz.impl; import com.xxl.job.core.biz.ExecutorBiz; -import com.xxl.job.core.biz.model.LogParam; -import com.xxl.job.core.biz.model.LogResult; -import com.xxl.job.core.biz.model.ReturnT; -import com.xxl.job.core.biz.model.TriggerParam; +import com.xxl.job.core.biz.model.*; import com.xxl.job.core.enums.ExecutorBlockStrategyEnum; import com.xxl.job.core.executor.XxlJobExecutor; import com.xxl.job.core.glue.GlueFactory; @@ -31,11 +28,11 @@ public class ExecutorBizImpl implements ExecutorBiz { } @Override - public ReturnT idleBeat(int jobId) { + public ReturnT idleBeat(IdleBeatParam idleBeatParam) { // isRunningOrHasQueue boolean isRunningOrHasQueue = false; - JobThread jobThread = XxlJobExecutor.loadJobThread(jobId); + JobThread jobThread = XxlJobExecutor.loadJobThread(idleBeatParam.getJobId()); if (jobThread != null && jobThread.isRunningOrHasQueue()) { isRunningOrHasQueue = true; } @@ -152,11 +149,11 @@ public class ExecutorBizImpl implements ExecutorBiz { } @Override - public ReturnT kill(int jobId) { + public ReturnT kill(KillParam killParam) { // kill handlerThread, and create new one - JobThread jobThread = XxlJobExecutor.loadJobThread(jobId); + JobThread jobThread = XxlJobExecutor.loadJobThread(killParam.getJobId()); if (jobThread != null) { - XxlJobExecutor.removeJobThread(jobId, "scheduling center kill job."); + XxlJobExecutor.removeJobThread(killParam.getJobId(), "scheduling center kill job."); return ReturnT.SUCCESS; } diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/IdleBeatParam.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/IdleBeatParam.java new file mode 100644 index 00000000..80cd288d --- /dev/null +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/IdleBeatParam.java @@ -0,0 +1,28 @@ +package com.xxl.job.core.biz.model; + +import java.io.Serializable; + +/** + * @author xuxueli 2020-04-11 22:27 + */ +public class IdleBeatParam implements Serializable { + private static final long serialVersionUID = 42L; + + public IdleBeatParam() { + } + public IdleBeatParam(int jobId) { + this.jobId = jobId; + } + + private int jobId; + + + public int getJobId() { + return jobId; + } + + public void setJobId(int jobId) { + this.jobId = jobId; + } + +} \ No newline at end of file diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/KillParam.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/KillParam.java new file mode 100644 index 00000000..b0d96e36 --- /dev/null +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/KillParam.java @@ -0,0 +1,28 @@ +package com.xxl.job.core.biz.model; + +import java.io.Serializable; + +/** + * @author xuxueli 2020-04-11 22:27 + */ +public class KillParam implements Serializable { + private static final long serialVersionUID = 42L; + + public KillParam() { + } + public KillParam(int jobId) { + this.jobId = jobId; + } + + private int jobId; + + + public int getJobId() { + return jobId; + } + + public void setJobId(int jobId) { + this.jobId = jobId; + } + +} \ No newline at end of file diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogParam.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogParam.java index 7bee48eb..cdaecb96 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogParam.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogParam.java @@ -8,6 +8,8 @@ import java.io.Serializable; public class LogParam implements Serializable { private static final long serialVersionUID = 42L; + public LogParam() { + } public LogParam(long logDateTim, long logId, int fromLineNum) { this.logDateTim = logDateTim; this.logId = logId; diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogResult.java b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogResult.java index 1bd4c729..1ffdf7ce 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogResult.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/biz/model/LogResult.java @@ -8,6 +8,8 @@ import java.io.Serializable; public class LogResult implements Serializable { private static final long serialVersionUID = 42L; + public LogResult() { + } public LogResult(int fromLineNum, int toLineNum, String logContent, boolean isEnd) { this.fromLineNum = fromLineNum; this.toLineNum = toLineNum; diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java b/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java index c252001d..4f344d2e 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java @@ -2,9 +2,7 @@ package com.xxl.job.core.server; import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.impl.ExecutorBizImpl; -import com.xxl.job.core.biz.model.LogParam; -import com.xxl.job.core.biz.model.ReturnT; -import com.xxl.job.core.biz.model.TriggerParam; +import com.xxl.job.core.biz.model.*; import com.xxl.job.core.thread.ExecutorRegistryThread; import com.xxl.job.core.util.GsonTool; import com.xxl.job.core.util.ThrowableUtil; @@ -169,18 +167,18 @@ public class EmbedServer { if ("/beat".equals(uri)) { return executorBiz.beat(); } else if ("/idleBeat".equals(uri)) { - int jobId = GsonTool.fromJson(requestData, Integer.class); - return executorBiz.idleBeat(jobId); + IdleBeatParam idleBeatParam = GsonTool.fromJson(requestData, IdleBeatParam.class); + return executorBiz.idleBeat(idleBeatParam); + } else if ("/run".equals(uri)) { + TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class); + return executorBiz.run(triggerParam); } else if ("/kill".equals(uri)) { - int jobId = GsonTool.fromJson(requestData, Integer.class); - return executorBiz.kill(jobId); + KillParam killParam = GsonTool.fromJson(requestData, KillParam.class); + return executorBiz.kill(killParam); } else if ("/log".equals(uri)) { LogParam logParam = GsonTool.fromJson(requestData, LogParam.class); return executorBiz.log(logParam); - } else if ("/run".equals(uri)) { - TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class); - return executorBiz.run(triggerParam); - } else { + } else { return new ReturnT(ReturnT.FAIL_CODE, "invalid request, uri-mapping("+ uri +") not found."); } } catch (Exception e) {