|
@@ -1,5 +1,6 @@
|
|
|
package com.ema.admin.modules.system.controller;
|
|
package com.ema.admin.modules.system.controller;
|
|
|
|
|
|
|
|
|
|
+import com.ema.common.domain.enums.BooleanEnum;
|
|
|
import com.mybatisflex.core.paginate.Page;
|
|
import com.mybatisflex.core.paginate.Page;
|
|
|
import com.ema.admin.modules.system.entity.SysTimersJob;
|
|
import com.ema.admin.modules.system.entity.SysTimersJob;
|
|
|
import com.ema.admin.modules.system.enums.SysTimerJobEnum;
|
|
import com.ema.admin.modules.system.enums.SysTimerJobEnum;
|
|
@@ -11,9 +12,12 @@ import com.ema.common.aspect.logger.Logger;
|
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
import io.swagger.annotations.ApiParam;
|
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -41,6 +45,7 @@ public class SysTimersJobController {
|
|
|
@PostMapping("save")
|
|
@PostMapping("save")
|
|
|
@ApiOperation("保存定时任务")
|
|
@ApiOperation("保存定时任务")
|
|
|
@Logger(type = LogTypeEnum.SAVE)
|
|
@Logger(type = LogTypeEnum.SAVE)
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean save(@RequestBody @ApiParam("定时任务") SysTimersJob sysTimersJob) {
|
|
public boolean save(@RequestBody @ApiParam("定时任务") SysTimersJob sysTimersJob) {
|
|
|
boolean save = sysTimersJobService.save(sysTimersJob);
|
|
boolean save = sysTimersJobService.save(sysTimersJob);
|
|
|
if (save && SysTimerJobEnum.Status.RUNNING.getCode().equals(sysTimersJob.getJobStatus())) {
|
|
if (save && SysTimerJobEnum.Status.RUNNING.getCode().equals(sysTimersJob.getJobStatus())) {
|
|
@@ -75,6 +80,7 @@ public class SysTimersJobController {
|
|
|
@PutMapping("update")
|
|
@PutMapping("update")
|
|
|
@ApiOperation("根据主键更新定时任务")
|
|
@ApiOperation("根据主键更新定时任务")
|
|
|
@Logger(type = LogTypeEnum.UPDATE)
|
|
@Logger(type = LogTypeEnum.UPDATE)
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean update(@RequestBody @ApiParam("定时任务主键") SysTimersJob sysTimersJob) {
|
|
public boolean update(@RequestBody @ApiParam("定时任务主键") SysTimersJob sysTimersJob) {
|
|
|
boolean update = sysTimersJobService.updateById(sysTimersJob);
|
|
boolean update = sysTimersJobService.updateById(sysTimersJob);
|
|
|
if (update && SysTimerJobEnum.Status.STOP.getCode().equals(sysTimersJob.getJobStatus())) {
|
|
if (update && SysTimerJobEnum.Status.STOP.getCode().equals(sysTimersJob.getJobStatus())) {
|
|
@@ -139,12 +145,18 @@ public class SysTimersJobController {
|
|
|
@Logger(type = LogTypeEnum.UPDATE)
|
|
@Logger(type = LogTypeEnum.UPDATE)
|
|
|
public boolean start(@PathVariable @ApiParam("定时任务主键") String id) {
|
|
public boolean start(@PathVariable @ApiParam("定时任务主键") String id) {
|
|
|
SysTimersJob sysTimersJob = sysTimersJobService.getById(id);
|
|
SysTimersJob sysTimersJob = sysTimersJobService.getById(id);
|
|
|
- sysTimersJob.setJobStatus(SysTimerJobEnum.Status.RUNNING.getCode());
|
|
|
|
|
- boolean update = sysTimersJobService.updateById(sysTimersJob);
|
|
|
|
|
- if (update) {
|
|
|
|
|
- return timerExeService.startTimer(sysTimersJob.getId(), sysTimersJob.getCron(), sysTimersJob.getActionClass());
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ timerExeService.startTimer(sysTimersJob.getId(), sysTimersJob.getCron(), sysTimersJob.getActionClass());
|
|
|
|
|
+ sysTimersJob.setJobStatus(SysTimerJobEnum.Status.RUNNING.getCode());
|
|
|
|
|
+ return sysTimersJobService.updateById(sysTimersJob);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ sysTimersJob.setJobStatus(SysTimerJobEnum.Status.STOP.getCode());
|
|
|
|
|
+ sysTimersJob.setLastTime(new Date());
|
|
|
|
|
+ sysTimersJob.setLastStatus(BooleanEnum.FALSE.getValue());
|
|
|
|
|
+ sysTimersJob.setLastMsg("启动失败:" + e.getMessage());
|
|
|
|
|
+ sysTimersJobService.updateById(sysTimersJob);
|
|
|
|
|
+ throw e;
|
|
|
}
|
|
}
|
|
|
- return false;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|