parent
2f2ed56348
commit
9325afea08
|
@ -1,6 +1,7 @@
|
||||||
package com.xxl.job.admin.core.util;
|
package com.xxl.job.admin.core.util;
|
||||||
|
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.core.model.XxlJobInfo;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* job key util
|
* job key util
|
||||||
|
@ -20,4 +21,24 @@ public class JobKeyUtil {
|
||||||
.concat("_").concat(String.valueOf(xxlJobInfo.getId()));
|
.concat("_").concat(String.valueOf(xxlJobInfo.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* parse jobId from JobKey
|
||||||
|
*
|
||||||
|
* @param jobKey
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static int parseJobId(String jobKey){
|
||||||
|
if (jobKey!=null && jobKey.trim().length()>0) {
|
||||||
|
String[] jobKeyArr = jobKey.split("_");
|
||||||
|
if (jobKeyArr.length == 2) {
|
||||||
|
String jobIdStr = jobKeyArr[1];
|
||||||
|
if (StringUtils.isNotBlank(jobIdStr) && StringUtils.isNumeric(jobIdStr)) {
|
||||||
|
int jobId = Integer.valueOf(jobIdStr);
|
||||||
|
return jobId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.xxl.job.admin.core.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.model.XxlJobLog;
|
import com.xxl.job.admin.core.model.XxlJobLog;
|
||||||
import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
|
import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
|
||||||
import com.xxl.job.admin.core.trigger.XxlJobTrigger;
|
import com.xxl.job.admin.core.trigger.XxlJobTrigger;
|
||||||
|
import com.xxl.job.admin.core.util.JobKeyUtil;
|
||||||
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.admin.dao.XxlJobRegistryDao;
|
import com.xxl.job.admin.dao.XxlJobRegistryDao;
|
||||||
|
@ -72,9 +73,9 @@ public class AdminBizImpl implements AdminBiz {
|
||||||
|
|
||||||
String[] childJobKeys = xxlJobInfo.getChildJobKey().split(",");
|
String[] childJobKeys = xxlJobInfo.getChildJobKey().split(",");
|
||||||
for (int i = 0; i < childJobKeys.length; i++) {
|
for (int i = 0; i < childJobKeys.length; i++) {
|
||||||
String[] jobKeyArr = childJobKeys[i].split("_");
|
int childJobId = JobKeyUtil.parseJobId(childJobKeys[i]);
|
||||||
if (jobKeyArr!=null && jobKeyArr.length==2) {
|
if (childJobId > 0) {
|
||||||
ReturnT<String> triggerChildResult = xxlJobService.triggerJob(Integer.valueOf(jobKeyArr[1]));
|
ReturnT<String> triggerChildResult = xxlJobService.triggerJob(childJobId);
|
||||||
|
|
||||||
// add msg
|
// add msg
|
||||||
callbackMsg += MessageFormat.format("{0}/{1} [JobKey={2}], 触发{3}, 触发备注: {4} <br>",
|
callbackMsg += MessageFormat.format("{0}/{1} [JobKey={2}], 触发{3}, 触发备注: {4} <br>",
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.xxl.job.admin.core.model.XxlJobGroup;
|
||||||
import com.xxl.job.admin.core.model.XxlJobInfo;
|
import com.xxl.job.admin.core.model.XxlJobInfo;
|
||||||
import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
|
import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
|
||||||
import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
|
import com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler;
|
||||||
|
import com.xxl.job.admin.core.util.JobKeyUtil;
|
||||||
import com.xxl.job.admin.dao.XxlJobGroupDao;
|
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;
|
||||||
|
@ -107,11 +108,11 @@ public class XxlJobServiceImpl implements XxlJobService {
|
||||||
if (StringUtils.isNotBlank(jobInfo.getChildJobKey())) {
|
if (StringUtils.isNotBlank(jobInfo.getChildJobKey())) {
|
||||||
String[] childJobKeys = jobInfo.getChildJobKey().split(",");
|
String[] childJobKeys = jobInfo.getChildJobKey().split(",");
|
||||||
for (String childJobKeyItem: childJobKeys) {
|
for (String childJobKeyItem: childJobKeys) {
|
||||||
String[] childJobKeyArr = childJobKeyItem.split("_");
|
int childJobId = JobKeyUtil.parseJobId(childJobKeyItem);
|
||||||
if (childJobKeyArr.length!=2) {
|
if (childJobId <= 0) {
|
||||||
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})格式错误", childJobKeyItem));
|
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})格式错误", childJobKeyItem));
|
||||||
}
|
}
|
||||||
XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.valueOf(childJobKeyArr[1]));
|
XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(childJobId);
|
||||||
if (childJobInfo==null) {
|
if (childJobInfo==null) {
|
||||||
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})无效", childJobKeyItem));
|
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})无效", childJobKeyItem));
|
||||||
}
|
}
|
||||||
|
@ -170,11 +171,11 @@ public class XxlJobServiceImpl implements XxlJobService {
|
||||||
if (StringUtils.isNotBlank(jobInfo.getChildJobKey())) {
|
if (StringUtils.isNotBlank(jobInfo.getChildJobKey())) {
|
||||||
String[] childJobKeys = jobInfo.getChildJobKey().split(",");
|
String[] childJobKeys = jobInfo.getChildJobKey().split(",");
|
||||||
for (String childJobKeyItem: childJobKeys) {
|
for (String childJobKeyItem: childJobKeys) {
|
||||||
String[] childJobKeyArr = childJobKeyItem.split("_");
|
int childJobId = JobKeyUtil.parseJobId(childJobKeyItem);
|
||||||
if (childJobKeyArr.length!=2) {
|
if (childJobId <= 0) {
|
||||||
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})格式错误", childJobKeyItem));
|
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})格式错误", childJobKeyItem));
|
||||||
}
|
}
|
||||||
XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.valueOf(childJobKeyArr[1]));
|
XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(childJobId);
|
||||||
if (childJobInfo==null) {
|
if (childJobInfo==null) {
|
||||||
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})无效", childJobKeyItem));
|
return new ReturnT<String>(ReturnT.FAIL_CODE, MessageFormat.format("子任务Key({0})无效", childJobKeyItem));
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,11 +53,16 @@ public class XxlJobFileAppender {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String makeLogFileName(Date triggerDate, int logId) {
|
public static String makeLogFileName(Date triggerDate, int logId) {
|
||||||
// filePath/yyyy-MM-dd/9999.log
|
|
||||||
|
// filePath/yyyy-MM-dd
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // avoid concurrent problem, can not be static
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // avoid concurrent problem, can not be static
|
||||||
String logFileName = getLogPath()
|
File logFilePath = new File(getLogPath(), sdf.format(triggerDate));
|
||||||
.concat("/")
|
if (!logFilePath.exists()) {
|
||||||
.concat(sdf.format(triggerDate))
|
logFilePath.mkdir();
|
||||||
|
}
|
||||||
|
|
||||||
|
// filePath/yyyy-MM-dd/9999.log
|
||||||
|
String logFileName = logFilePath.getPath()
|
||||||
.concat("/")
|
.concat("/")
|
||||||
.concat(String.valueOf(logId))
|
.concat(String.valueOf(logId))
|
||||||
.concat(".log");
|
.concat(".log");
|
||||||
|
|
Loading…
Reference in New Issue