Merge pull request #4112 from dataease/pr@dev@perf-report-task

perf(定时报告): 增加任务状态字段
This commit is contained in:
fit2cloud-chenyw 2022-12-16 13:53:29 +08:00 committed by GitHub
commit 563b57faa5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 43 additions and 3 deletions

View File

@ -21,6 +21,7 @@ public abstract class TaskHandler implements InitializingBean {
if (CronUtils.taskExpire(endTime)) { // 过期了就删除任务 if (CronUtils.taskExpire(endTime)) { // 过期了就删除任务
return; return;
} }
if (!taskEntity.getStatus()) return;
JobKey jobKey = new JobKey(taskEntity.getTaskId().toString()); JobKey jobKey = new JobKey(taskEntity.getTaskId().toString());
TriggerKey triggerKey = new TriggerKey(taskEntity.getTaskId().toString()); TriggerKey triggerKey = new TriggerKey(taskEntity.getTaskId().toString());
Date start = new Date(taskEntity.getStartTime()); Date start = new Date(taskEntity.getStartTime());

View File

@ -94,7 +94,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
Boolean isTempTask = (Boolean) jobDataMap.getOrDefault(IS_TEMP_TASK, false); Boolean isTempTask = (Boolean) jobDataMap.getOrDefault(IS_TEMP_TASK, false);
GlobalTaskEntity taskEntity = (GlobalTaskEntity) jobDataMap.get("taskEntity"); GlobalTaskEntity taskEntity = (GlobalTaskEntity) jobDataMap.get("taskEntity");
ScheduleManager scheduleManager = SpringContextUtil.getBean(ScheduleManager.class); ScheduleManager scheduleManager = SpringContextUtil.getBean(ScheduleManager.class);
if (!isTempTask && CronUtils.taskExpire(taskEntity.getEndTime())) { if (!isTempTask && (CronUtils.taskExpire(taskEntity.getEndTime()) || !taskEntity.getStatus())) {
removeTask(scheduleManager, taskEntity); removeTask(scheduleManager, taskEntity);
return; return;
} }
@ -167,7 +167,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
try { try {
XpackEmailTemplateDTO emailTemplateDTO = emailXpackService.emailTemplate(taskInstance.getTaskId()); XpackEmailTemplateDTO emailTemplateDTO = emailXpackService.emailTemplate(taskInstance.getTaskId());
XpackEmailTaskRequest taskForm = emailXpackService.taskForm(taskInstance.getTaskId()); XpackEmailTaskRequest taskForm = emailXpackService.taskForm(taskInstance.getTaskId());
if (ObjectUtils.isEmpty(taskForm) || (!isTempTask && CronUtils.taskExpire(taskForm.getEndTime()))) { if (ObjectUtils.isEmpty(taskForm) || (!isTempTask && (CronUtils.taskExpire(taskForm.getEndTime()) || !taskForm.getStatus()))) {
removeInstance(taskInstance); removeInstance(taskInstance);
return; return;
} }

View File

@ -80,7 +80,7 @@ public class XEmailTaskServer {
List<XpackTaskGridDTO> tasks = emailXpackService.taskGrid(request); List<XpackTaskGridDTO> tasks = emailXpackService.taskGrid(request);
if (CollectionUtils.isNotEmpty(tasks)) { if (CollectionUtils.isNotEmpty(tasks)) {
tasks.forEach(item -> { tasks.forEach(item -> {
if (CronUtils.taskExpire(item.getEndTime())) { if (CronUtils.taskExpire(item.getEndTime()) || !item.getStatus()) {
item.setNextExecTime(null); item.setNextExecTime(null);
} else { } else {
GlobalTaskEntity globalTaskEntity = new GlobalTaskEntity(); GlobalTaskEntity globalTaskEntity = new GlobalTaskEntity();
@ -110,8 +110,16 @@ public class XEmailTaskServer {
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class); EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
XpackEmailTaskRequest request = emailXpackService.taskForm(taskId); XpackEmailTaskRequest request = emailXpackService.taskForm(taskId);
GlobalTaskEntity globalTaskEntity = BeanUtils.copyBean(new GlobalTaskEntity(), request); GlobalTaskEntity globalTaskEntity = BeanUtils.copyBean(new GlobalTaskEntity(), request);
Boolean invalid = false;
if (CronUtils.taskExpire(globalTaskEntity.getEndTime())) { if (CronUtils.taskExpire(globalTaskEntity.getEndTime())) {
globalTaskEntity.setEndTime(null); globalTaskEntity.setEndTime(null);
invalid = true;
}
if (!globalTaskEntity.getStatus()) {
globalTaskEntity.setStatus(true);
invalid = true;
}
if (invalid) {
scheduleService.addTempSchedule(globalTaskEntity); scheduleService.addTempSchedule(globalTaskEntity);
return; return;
} }
@ -270,6 +278,12 @@ public class XEmailTaskServer {
emailXpackService.stop(taskId); emailXpackService.stop(taskId);
} }
@PostMapping("/start/{taskId}")
public Boolean start(@PathVariable Long taskId) throws Exception {
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
return emailXpackService.start(taskId);
}
@PostMapping("/queryInstancies/{goPage}/{pageSize}") @PostMapping("/queryInstancies/{goPage}/{pageSize}")
public Pager<List<XpackTaskInstanceDTO>> instancesGrid(@PathVariable int goPage, @PathVariable int pageSize, public Pager<List<XpackTaskInstanceDTO>> instancesGrid(@PathVariable int goPage, @PathVariable int pageSize,
@RequestBody XpackGridRequest request) { @RequestBody XpackGridRequest request) {

View File

@ -4,3 +4,7 @@ ALTER TABLE `panel_app_template_log`
UPDATE `panel_subject` UPDATE `panel_subject`
SET `details` = '{\"width\":1600,\"height\":900,\"scale\":100,\"scaleWidth\":100,\"scaleHeight\":100,\"selfAdaption\":true,\"auxiliaryMatrix\":true,\"openCommonStyle\":true,\"panel\":{\"themeColor\":\"light\",\"color\":\"#F1F3F5\",\"imageUrl\":{},\"backgroundType\":\"color\",\"gap\":\"yes\",\"resultMode\":\"all\",\"resultCount\":1000},\"aidedDesign\":{\"showGrid\":false,\"matrixBase\":4},\"refreshViewLoading\":true,\"refreshUnit\":\"minute\",\"refreshTime\":5,\"themeId\":\"251a25d0-7ac5-11ed-9e50-5f9360ac1250\",\"chartInfo\":{\"chartTitle\":{\"show\":true,\"fontSize\":\"18\",\"color\":\"#000000\",\"hPosition\":\"left\",\"vPosition\":\"top\",\"isItalic\":false,\"isBolder\":true},\"chartColor\":{\"value\":\"default\",\"colors\":[\"#5470c6\",\"#91cc75\",\"#fac858\",\"#ee6666\",\"#73c0de\",\"#3ba272\",\"#fc8452\",\"#9a60b4\",\"#ea7ccc\"],\"alpha\":100,\"tableHeaderBgColor\":\"#6D9A49\",\"tableItemBgColor\":\"#FFFFFF\",\"tableFontColor\":\"#000000\",\"tableStripe\":true,\"dimensionColor\":\"#000000\",\"quotaColor\":\"#4E81BB\",\"tableBorderColor\":\"#E6E7E4\",\"seriesColors\":[],\"tableHeaderFontColor\":\"#000000\"},\"chartCommonStyle\":{\"backgroundColorSelect\":true,\"color\":\"#FFFFFF\",\"alpha\":100,\"borderRadius\":5,\"innerPadding\":0},\"filterStyle\":{\"horizontal\":\"left\",\"vertical\":\"top\",\"color\":\"#000000\",\"brColor\":\"#DCDFE6\",\"wordColor\":\"#606266\",\"innerBgColor\":\"#FFFFFF\"}}}' SET `details` = '{\"width\":1600,\"height\":900,\"scale\":100,\"scaleWidth\":100,\"scaleHeight\":100,\"selfAdaption\":true,\"auxiliaryMatrix\":true,\"openCommonStyle\":true,\"panel\":{\"themeColor\":\"light\",\"color\":\"#F1F3F5\",\"imageUrl\":{},\"backgroundType\":\"color\",\"gap\":\"yes\",\"resultMode\":\"all\",\"resultCount\":1000},\"aidedDesign\":{\"showGrid\":false,\"matrixBase\":4},\"refreshViewLoading\":true,\"refreshUnit\":\"minute\",\"refreshTime\":5,\"themeId\":\"251a25d0-7ac5-11ed-9e50-5f9360ac1250\",\"chartInfo\":{\"chartTitle\":{\"show\":true,\"fontSize\":\"18\",\"color\":\"#000000\",\"hPosition\":\"left\",\"vPosition\":\"top\",\"isItalic\":false,\"isBolder\":true},\"chartColor\":{\"value\":\"default\",\"colors\":[\"#5470c6\",\"#91cc75\",\"#fac858\",\"#ee6666\",\"#73c0de\",\"#3ba272\",\"#fc8452\",\"#9a60b4\",\"#ea7ccc\"],\"alpha\":100,\"tableHeaderBgColor\":\"#6D9A49\",\"tableItemBgColor\":\"#FFFFFF\",\"tableFontColor\":\"#000000\",\"tableStripe\":true,\"dimensionColor\":\"#000000\",\"quotaColor\":\"#4E81BB\",\"tableBorderColor\":\"#E6E7E4\",\"seriesColors\":[],\"tableHeaderFontColor\":\"#000000\"},\"chartCommonStyle\":{\"backgroundColorSelect\":true,\"color\":\"#FFFFFF\",\"alpha\":100,\"borderRadius\":5,\"innerPadding\":0},\"filterStyle\":{\"horizontal\":\"left\",\"vertical\":\"top\",\"color\":\"#000000\",\"brColor\":\"#DCDFE6\",\"wordColor\":\"#606266\",\"innerBgColor\":\"#FFFFFF\"}}}'
WHERE `id` = 'system_1'; WHERE `id` = 'system_1';
ALTER TABLE `sys_task`
ADD COLUMN `status` tinyint(1) NULL DEFAULT 1 COMMENT '运行状态' AFTER `create_time`;

View File

@ -2596,6 +2596,13 @@ export default {
search_by_name: 'Search by name', search_by_name: 'Search by name',
exec_time: 'Execute time', exec_time: 'Execute time',
status: 'Execute status', status: 'Execute status',
task_status: 'Task status',
running: 'Running',
stopped: 'Stopped',
start: 'Start',
start_success: 'Start success',
start_success_but: ', But the task expired, please manually change the end time',
sure_batch_delete: 'Are you sure you want to delete tasks in bulk?',
pixel_error: 'Pixel only support {800 - 10000} * {500 - 6250}', pixel_error: 'Pixel only support {800 - 10000} * {500 - 6250}',
next_exec_time: 'Next execute time' next_exec_time: 'Next execute time'

View File

@ -2590,6 +2590,13 @@ export default {
search_by_name: '根據名稱搜索', search_by_name: '根據名稱搜索',
exec_time: '執行時間', exec_time: '執行時間',
status: '執行狀態', status: '執行狀態',
task_status: '任務狀態',
running: '運行中',
stopped: '已停止',
start: '啟用',
start_success: '啟用成功',
start_success_but: ',但任務過期,請手動更改結束時間',
sure_batch_delete: '確定批量刪除任務嗎?',
pixel_error: '分辨率支持{800 - 10000} * {500 - 6250}', pixel_error: '分辨率支持{800 - 10000} * {500 - 6250}',
next_exec_time: '下次執行時間' next_exec_time: '下次執行時間'

View File

@ -2590,6 +2590,13 @@ export default {
search_by_name: '根据名称搜索', search_by_name: '根据名称搜索',
exec_time: '执行时间', exec_time: '执行时间',
status: '执行状态', status: '执行状态',
task_status: '任务状态',
running: '运行中',
stopped: '已停止',
start: '启用',
start_success: '启用成功',
start_success_but: ',但任务过期,请手动更改结束时间',
sure_batch_delete: '确定批量删除任务吗?',
pixel_error: '分辨率支持{800 - 10000} * {500 - 6250}', pixel_error: '分辨率支持{800 - 10000} * {500 - 6250}',
next_exec_time: '下次执行时间' next_exec_time: '下次执行时间'