适配定时任务调度改造

This commit is contained in:
liangdaliang
2025-06-09 14:42:18 +08:00
parent c6380b6bde
commit 7161354894
3 changed files with 40 additions and 17 deletions

View File

@@ -98,12 +98,12 @@ public class TestTaskController extends BaseController {
testTask.setCreateBy(getLoginUser().getUsername());
testTask.setCreateTime(DateUtils.getNowDate());
int result = testTaskService.insertTestTask(testTask);
// 如果任务状态是启用且没有被删除,则添加到定时任务管理器
if (testTask.getStatus() == 0 && "0".equals(testTask.getDelFlag())) {
testTaskManager.addNewTask(testTask);
}
return toAjax(result);
} catch (Exception e) {
return error("新增失败:" + e.getMessage());
@@ -117,18 +117,20 @@ public class TestTaskController extends BaseController {
@PostMapping("/edit")
public AjaxResult edit(@RequestBody TestTask testTask) {
try {
testTask.setUpdateBy(getLoginUser().getUsername());
testTask.setUpdateTime(DateUtils.getNowDate());
// 获取原任务信息
TestTask originalTask = testTaskService.selectTestTaskById(testTask.getId()).getTask();
// 更新任务
int result = testTaskService.updateTestTask(testTask);
// 如果状态或crontab发生变化更新定时任务
if (testTask.getStatus() != originalTask.getStatus() ||
if (testTask.getStatus() != originalTask.getStatus() ||
!testTask.getCrontab().equals(originalTask.getCrontab())) {
testTaskManager.updateTask(testTask);
}
return toAjax(result);
} catch (Exception e) {
return error("修改失败:" + e.getMessage());

View File

@@ -70,7 +70,16 @@ public class TestTaskServiceImpl implements ITestTaskService {
*/
@Override
public int insertTestTask(TestTask testTask) {
return testTaskMapper.insertTestTask(testTask);
String operUser = testTask.getCreateBy();
int i = testTaskMapper.insertTestTask(testTask);
TestTaskLog testTaskLog = new TestTaskLog();
testTaskLog.setTaskId(testTask.getId());
testTaskLog.setOperType("新增");
testTaskLog.setOperDetail("操作人:" + operUser + "新增了【" + testTask.getName() + "】定时任务测试用例");
testTaskLog.setOperUser(operUser);
testTaskLog.setOperTime(DateUtils.getNowDate());
testTaskLogMapper.insertTestTaskLog(testTaskLog);
return i;
}
/**
@@ -78,8 +87,17 @@ public class TestTaskServiceImpl implements ITestTaskService {
*/
@Override
public int updateTestTask(TestTask testTask) {
String operUser = testTask.getCreateBy();
testTask.setUpdateTime(DateUtils.getNowDate());
return testTaskMapper.updateTestTask(testTask);
int i = testTaskMapper.updateTestTask(testTask);
TestTaskLog testTaskLog = new TestTaskLog();
testTaskLog.setTaskId(testTask.getId());
testTaskLog.setOperType("修改");
testTaskLog.setOperDetail("操作人:" + operUser + "修改了【" + testTask.getName() + "】定时任务测试用例");
testTaskLog.setOperUser(operUser);
testTaskLog.setOperTime(DateUtils.getNowDate());
testTaskLogMapper.insertTestTaskLog(testTaskLog);
return i;
}
/**
@@ -114,13 +132,15 @@ public class TestTaskServiceImpl implements ITestTaskService {
log.error("定时任务已删除,不能执行!");
return false;
}
TestTaskLog testTaskLog = new TestTaskLog();
testTaskLog.setTaskId(id);
testTaskLog.setOperType("执行");
testTaskLog.setOperDetail("操作人:" + operUser + "提交执行了【" + testTask.getName() + "】定时任务测试用例");
testTaskLog.setOperUser(operUser);
testTaskLog.setOperTime(DateUtils.getNowDate());
testTaskLogMapper.insertTestTaskLog(testTaskLog);
if (triggerType == 2) {
TestTaskLog testTaskLog = new TestTaskLog();
testTaskLog.setTaskId(id);
testTaskLog.setOperType("执行");
testTaskLog.setOperDetail("操作人:" + operUser + "提交执行了【" + testTask.getName() + "】定时任务测试用例");
testTaskLog.setOperUser(operUser);
testTaskLog.setOperTime(DateUtils.getNowDate());
testTaskLogMapper.insertTestTaskLog(testTaskLog);
}
TestTaskResult testTaskResult = new TestTaskResult();
testTaskResult.setTaskId(id);
testTaskResult.setTriggerTime(DateUtils.getNowDate());
@@ -148,7 +168,8 @@ public class TestTaskServiceImpl implements ITestTaskService {
// 开始执行定时任务逻辑。。。
if (triggerType == 1) {
// 添加定时任务定时执行
taskManagerService.addTask(testTask, jmeterHomePath, testTaskCaseList, testTaskResult);
// taskManagerService.addTask(testTask, jmeterHomePath, testTaskCaseList, testTaskResult);
taskManagerService.executeTaskWithTestCases(testTask, jmeterHomePath, testTaskCaseList, testTaskResult);
} else {
// 手动立即执行
taskManagerService.executeTaskWithTestCases(testTask, jmeterHomePath, testTaskCaseList, testTaskResult);

View File

@@ -15,7 +15,7 @@
<div class="table-content">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="triggerTime" label="触发时间"> </el-table-column>
<el-table-column prop="startTime" label="开始时间"> </el-table-column>
<!-- <el-table-column prop="startTime" label="开始时间"> </el-table-column>-->
<el-table-column prop="triggerType" label="触发方式" :formatter="row => ['','定时任务', '手动'][row.triggerType]">
</el-table-column>
<el-table-column prop="resultDesc" label="情况描述"> </el-table-column>