update rm

This commit is contained in:
xuxueli 2020-04-12 02:57:03 +08:00
parent 77bcfd65e0
commit 4d44822efa
12 changed files with 100 additions and 47 deletions

View File

@ -1406,7 +1406,9 @@ Header
XXL-JOB-ACCESS-TOKEN : {请求令牌} XXL-JOB-ACCESS-TOKEN : {请求令牌}
请求数据格式如下,放置在 RequestBody 中JSON格式 请求数据格式如下,放置在 RequestBody 中JSON格式
1 // 任务ID {
"jobId":1 // 任务ID
}
响应数据格式: 响应数据格式:
{ {
@ -1459,7 +1461,10 @@ Header
XXL-JOB-ACCESS-TOKEN : {请求令牌} XXL-JOB-ACCESS-TOKEN : {请求令牌}
请求数据格式如下,放置在 RequestBody 中JSON格式 请求数据格式如下,放置在 RequestBody 中JSON格式
1 // 任务ID {
"jobId":1 // 任务ID
}
响应数据格式: 响应数据格式:
{ {

View File

@ -10,6 +10,7 @@ import com.xxl.job.admin.dao.XxlJobGroupDao;
import com.xxl.job.admin.dao.XxlJobInfoDao; import com.xxl.job.admin.dao.XxlJobInfoDao;
import com.xxl.job.admin.dao.XxlJobLogDao; import com.xxl.job.admin.dao.XxlJobLogDao;
import com.xxl.job.core.biz.ExecutorBiz; 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.LogParam;
import com.xxl.job.core.biz.model.LogResult; import com.xxl.job.core.biz.model.LogResult;
import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.biz.model.ReturnT;
@ -172,7 +173,7 @@ public class JobLogController {
ReturnT<String> runResult = null; ReturnT<String> runResult = null;
try { try {
ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress()); ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress());
runResult = executorBiz.kill(jobInfo.getId()); runResult = executorBiz.kill(new KillParam(jobInfo.getId()));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
runResult = new ReturnT<String>(500, e.getMessage()); runResult = new ReturnT<String>(500, e.getMessage());

View File

@ -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.route.ExecutorRouter;
import com.xxl.job.admin.core.util.I18nUtil; import com.xxl.job.admin.core.util.I18nUtil;
import com.xxl.job.core.biz.ExecutorBiz; 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.ReturnT;
import com.xxl.job.core.biz.model.TriggerParam; import com.xxl.job.core.biz.model.TriggerParam;
@ -22,7 +23,7 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
ReturnT<String> idleBeatResult = null; ReturnT<String> idleBeatResult = null;
try { try {
ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address); ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address);
idleBeatResult = executorBiz.idleBeat(triggerParam.getJobId()); idleBeatResult = executorBiz.idleBeat(new IdleBeatParam(triggerParam.getJobId()));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
idleBeatResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e ); idleBeatResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e );

View File

@ -2,10 +2,7 @@ package com.xxl.job.executorbiz;
import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.ExecutorBiz;
import com.xxl.job.core.biz.client.ExecutorBizClient; import com.xxl.job.core.biz.client.ExecutorBizClient;
import com.xxl.job.core.biz.model.LogParam; import com.xxl.job.core.biz.model.*;
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.enums.ExecutorBlockStrategyEnum; import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
import com.xxl.job.core.glue.GlueTypeEnum; import com.xxl.job.core.glue.GlueTypeEnum;
import org.junit.Assert; import org.junit.Assert;
@ -42,7 +39,7 @@ public class ExecutorBizTest {
final int jobId = 0; final int jobId = 0;
// Act // Act
final ReturnT<String> retval = executorBiz.idleBeat(jobId); final ReturnT<String> retval = executorBiz.idleBeat(new IdleBeatParam(jobId));
// Assert result // Assert result
Assert.assertNotNull(retval); Assert.assertNotNull(retval);
@ -81,7 +78,7 @@ public class ExecutorBizTest {
final int jobId = 0; final int jobId = 0;
// Act // Act
final ReturnT<String> retval = executorBiz.kill(jobId); final ReturnT<String> retval = executorBiz.kill(new KillParam(jobId));
// Assert result // Assert result
Assert.assertNotNull(retval); Assert.assertNotNull(retval);

View File

@ -1,9 +1,6 @@
package com.xxl.job.core.biz; package com.xxl.job.core.biz;
import com.xxl.job.core.biz.model.LogParam; import com.xxl.job.core.biz.model.*;
import com.xxl.job.core.biz.model.LogResult;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.biz.model.TriggerParam;
/** /**
* Created by xuxueli on 17/3/1. * Created by xuxueli on 17/3/1.
@ -19,10 +16,10 @@ public interface ExecutorBiz {
/** /**
* idle beat * idle beat
* *
* @param jobId * @param idleBeatParam
* @return * @return
*/ */
public ReturnT<String> idleBeat(int jobId); public ReturnT<String> idleBeat(IdleBeatParam idleBeatParam);
/** /**
* run * run
@ -33,10 +30,10 @@ public interface ExecutorBiz {
/** /**
* kill * kill
* @param jobId * @param killParam
* @return * @return
*/ */
public ReturnT<String> kill(int jobId); public ReturnT<String> kill(KillParam killParam);
/** /**
* log * log

View File

@ -1,10 +1,7 @@
package com.xxl.job.core.biz.client; package com.xxl.job.core.biz.client;
import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.ExecutorBiz;
import com.xxl.job.core.biz.model.LogParam; import com.xxl.job.core.biz.model.*;
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.util.XxlJobRemotingUtil; import com.xxl.job.core.util.XxlJobRemotingUtil;
/** /**
@ -37,8 +34,8 @@ public class ExecutorBizClient implements ExecutorBiz {
} }
@Override @Override
public ReturnT<String> idleBeat(int jobId){ public ReturnT<String> idleBeat(IdleBeatParam idleBeatParam){
return XxlJobRemotingUtil.postBody(addressUrl+"idleBeat", accessToken, timeout, jobId, String.class); return XxlJobRemotingUtil.postBody(addressUrl+"idleBeat", accessToken, timeout, idleBeatParam, String.class);
} }
@Override @Override
@ -47,8 +44,8 @@ public class ExecutorBizClient implements ExecutorBiz {
} }
@Override @Override
public ReturnT<String> kill(int jobId) { public ReturnT<String> kill(KillParam killParam) {
return XxlJobRemotingUtil.postBody(addressUrl + "kill", accessToken, timeout, jobId, String.class); return XxlJobRemotingUtil.postBody(addressUrl + "kill", accessToken, timeout, killParam, String.class);
} }
@Override @Override

View File

@ -1,10 +1,7 @@
package com.xxl.job.core.biz.impl; package com.xxl.job.core.biz.impl;
import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.ExecutorBiz;
import com.xxl.job.core.biz.model.LogParam; import com.xxl.job.core.biz.model.*;
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.enums.ExecutorBlockStrategyEnum; import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
import com.xxl.job.core.executor.XxlJobExecutor; import com.xxl.job.core.executor.XxlJobExecutor;
import com.xxl.job.core.glue.GlueFactory; import com.xxl.job.core.glue.GlueFactory;
@ -31,11 +28,11 @@ public class ExecutorBizImpl implements ExecutorBiz {
} }
@Override @Override
public ReturnT<String> idleBeat(int jobId) { public ReturnT<String> idleBeat(IdleBeatParam idleBeatParam) {
// isRunningOrHasQueue // isRunningOrHasQueue
boolean isRunningOrHasQueue = false; boolean isRunningOrHasQueue = false;
JobThread jobThread = XxlJobExecutor.loadJobThread(jobId); JobThread jobThread = XxlJobExecutor.loadJobThread(idleBeatParam.getJobId());
if (jobThread != null && jobThread.isRunningOrHasQueue()) { if (jobThread != null && jobThread.isRunningOrHasQueue()) {
isRunningOrHasQueue = true; isRunningOrHasQueue = true;
} }
@ -152,11 +149,11 @@ public class ExecutorBizImpl implements ExecutorBiz {
} }
@Override @Override
public ReturnT<String> kill(int jobId) { public ReturnT<String> kill(KillParam killParam) {
// kill handlerThread, and create new one // kill handlerThread, and create new one
JobThread jobThread = XxlJobExecutor.loadJobThread(jobId); JobThread jobThread = XxlJobExecutor.loadJobThread(killParam.getJobId());
if (jobThread != null) { if (jobThread != null) {
XxlJobExecutor.removeJobThread(jobId, "scheduling center kill job."); XxlJobExecutor.removeJobThread(killParam.getJobId(), "scheduling center kill job.");
return ReturnT.SUCCESS; return ReturnT.SUCCESS;
} }

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -8,6 +8,8 @@ import java.io.Serializable;
public class LogParam implements Serializable { public class LogParam implements Serializable {
private static final long serialVersionUID = 42L; private static final long serialVersionUID = 42L;
public LogParam() {
}
public LogParam(long logDateTim, long logId, int fromLineNum) { public LogParam(long logDateTim, long logId, int fromLineNum) {
this.logDateTim = logDateTim; this.logDateTim = logDateTim;
this.logId = logId; this.logId = logId;

View File

@ -8,6 +8,8 @@ import java.io.Serializable;
public class LogResult implements Serializable { public class LogResult implements Serializable {
private static final long serialVersionUID = 42L; private static final long serialVersionUID = 42L;
public LogResult() {
}
public LogResult(int fromLineNum, int toLineNum, String logContent, boolean isEnd) { public LogResult(int fromLineNum, int toLineNum, String logContent, boolean isEnd) {
this.fromLineNum = fromLineNum; this.fromLineNum = fromLineNum;
this.toLineNum = toLineNum; this.toLineNum = toLineNum;

View File

@ -2,9 +2,7 @@ package com.xxl.job.core.server;
import com.xxl.job.core.biz.ExecutorBiz; import com.xxl.job.core.biz.ExecutorBiz;
import com.xxl.job.core.biz.impl.ExecutorBizImpl; import com.xxl.job.core.biz.impl.ExecutorBizImpl;
import com.xxl.job.core.biz.model.LogParam; import com.xxl.job.core.biz.model.*;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.biz.model.TriggerParam;
import com.xxl.job.core.thread.ExecutorRegistryThread; import com.xxl.job.core.thread.ExecutorRegistryThread;
import com.xxl.job.core.util.GsonTool; import com.xxl.job.core.util.GsonTool;
import com.xxl.job.core.util.ThrowableUtil; import com.xxl.job.core.util.ThrowableUtil;
@ -169,17 +167,17 @@ public class EmbedServer {
if ("/beat".equals(uri)) { if ("/beat".equals(uri)) {
return executorBiz.beat(); return executorBiz.beat();
} else if ("/idleBeat".equals(uri)) { } else if ("/idleBeat".equals(uri)) {
int jobId = GsonTool.fromJson(requestData, Integer.class); IdleBeatParam idleBeatParam = GsonTool.fromJson(requestData, IdleBeatParam.class);
return executorBiz.idleBeat(jobId); return executorBiz.idleBeat(idleBeatParam);
} else if ("/kill".equals(uri)) {
int jobId = GsonTool.fromJson(requestData, Integer.class);
return executorBiz.kill(jobId);
} else if ("/log".equals(uri)) {
LogParam logParam = GsonTool.fromJson(requestData, LogParam.class);
return executorBiz.log(logParam);
} else if ("/run".equals(uri)) { } else if ("/run".equals(uri)) {
TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class); TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class);
return executorBiz.run(triggerParam); return executorBiz.run(triggerParam);
} else if ("/kill".equals(uri)) {
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 { } else {
return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping("+ uri +") not found."); return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping("+ uri +") not found.");
} }