feat:(1.3.0-beta1): 调整定时任务和工作流手动调度入参

This commit is contained in:
Srzou 2024-12-27 23:34:35 +08:00
parent 37c4adb370
commit 3129dcb0dc
8 changed files with 53 additions and 44 deletions

View File

@ -3,10 +3,7 @@ package com.aizuda.snailjob.server.web.controller;
import com.aizuda.snailjob.common.core.annotation.OriginalControllerReturnValue;
import com.aizuda.snailjob.server.web.annotation.LoginRequired;
import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.ExportJobVO;
import com.aizuda.snailjob.server.web.model.request.JobQueryVO;
import com.aizuda.snailjob.server.web.model.request.JobRequestVO;
import com.aizuda.snailjob.server.web.model.request.JobStatusUpdateRequestVO;
import com.aizuda.snailjob.server.web.model.request.*;
import com.aizuda.snailjob.server.web.model.response.JobResponseVO;
import com.aizuda.snailjob.server.web.service.JobService;
import com.aizuda.snailjob.server.web.util.ExportUtils;
@ -96,16 +93,8 @@ public class JobController {
@PostMapping("/trigger")
@LoginRequired
public Boolean trigger(@RequestParam(value = "jobId") Long jobId,
@RequestParam(value = "tmpArgsStr", required = false) String tmpArgsStr) {
return jobService.trigger(jobId, tmpArgsStr);
}
@PostMapping("/trigger/{jobId}")
@LoginRequired
public Boolean trigger(@PathVariable("jobId") Long jobId) {
return jobService.trigger(jobId, null);
public Boolean trigger(@RequestBody @Validated JobTriggerVO jobTrigger) {
return jobService.trigger(jobTrigger);
}
@PostMapping(value = "/import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)

View File

@ -5,10 +5,7 @@ import com.aizuda.snailjob.common.core.annotation.OriginalControllerReturnValue;
import com.aizuda.snailjob.server.web.annotation.LoginRequired;
import com.aizuda.snailjob.server.web.annotation.RoleEnum;
import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.CheckDecisionVO;
import com.aizuda.snailjob.server.web.model.request.ExportWorkflowVO;
import com.aizuda.snailjob.server.web.model.request.WorkflowQueryVO;
import com.aizuda.snailjob.server.web.model.request.WorkflowRequestVO;
import com.aizuda.snailjob.server.web.model.request.*;
import com.aizuda.snailjob.server.web.model.response.WorkflowDetailResponseVO;
import com.aizuda.snailjob.server.web.model.response.WorkflowResponseVO;
import com.aizuda.snailjob.server.web.service.WorkflowService;
@ -74,17 +71,10 @@ public class WorkflowController {
return workflowService.deleteByIds(ids);
}
@PostMapping("/trigger/{id}")
@LoginRequired(role = RoleEnum.USER)
public Boolean trigger(@PathVariable("id") Long id) {
return workflowService.trigger(id,null);
}
@PostMapping("/trigger")
@LoginRequired(role = RoleEnum.USER)
public Boolean trigger(@RequestParam(value = "id") Long id,
@RequestParam(value = "tmpWfContext", required = false) String tmpWfContext) {
return workflowService.trigger(id, tmpWfContext);
public Boolean trigger(@RequestBody @Validated WorkflowTriggerVO triggerVO) {
return workflowService.trigger(triggerVO);
}
@GetMapping("/workflow-name/list")

View File

@ -0,0 +1,17 @@
package com.aizuda.snailjob.server.web.model.request;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@Data
public class JobTriggerVO {
@NotBlank(message = "jobId 不能为空")
private Long jobId;
/**
* 临时任务参数
*/
private String tmpArgsStr;
}

View File

@ -0,0 +1,17 @@
package com.aizuda.snailjob.server.web.model.request;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@Data
public class WorkflowTriggerVO {
@NotBlank(message = "workflowId 不能为空")
private Long workflowId;
/**
* 临时工作流上下文
*/
private String tmpWfContext;
}

View File

@ -1,10 +1,7 @@
package com.aizuda.snailjob.server.web.service;
import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.ExportJobVO;
import com.aizuda.snailjob.server.web.model.request.JobQueryVO;
import com.aizuda.snailjob.server.web.model.request.JobRequestVO;
import com.aizuda.snailjob.server.web.model.request.JobStatusUpdateRequestVO;
import com.aizuda.snailjob.server.web.model.request.*;
import com.aizuda.snailjob.server.web.model.response.JobResponseVO;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
@ -32,7 +29,7 @@ public interface JobService {
List<JobResponseVO> getJobNameList(String keywords, Long jobId, String groupName);
boolean trigger(Long jobId, String tmpArgsStr);
boolean trigger(JobTriggerVO jobTrigger);
List<JobResponseVO> getJobList(String groupName);

View File

@ -3,10 +3,7 @@ package com.aizuda.snailjob.server.web.service;
import cn.hutool.core.lang.Pair;
import com.aizuda.snailjob.server.common.dto.DecisionConfig;
import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.CheckDecisionVO;
import com.aizuda.snailjob.server.web.model.request.ExportWorkflowVO;
import com.aizuda.snailjob.server.web.model.request.WorkflowQueryVO;
import com.aizuda.snailjob.server.web.model.request.WorkflowRequestVO;
import com.aizuda.snailjob.server.web.model.request.*;
import com.aizuda.snailjob.server.web.model.response.WorkflowDetailResponseVO;
import com.aizuda.snailjob.server.web.model.response.WorkflowResponseVO;
import jakarta.validation.Valid;
@ -33,7 +30,7 @@ public interface WorkflowService {
Boolean updateStatus(Long id);
Boolean trigger(Long id, String tmpWfContext);
Boolean trigger(WorkflowTriggerVO triggerVO);
List<WorkflowResponseVO> getWorkflowNameList(String keywords, Long workflowId, String groupName);

View File

@ -239,8 +239,8 @@ public class JobServiceImpl implements JobService {
@Override
public boolean trigger(Long jobId, String tmpArgsStr) {
Job job = jobMapper.selectById(jobId);
public boolean trigger(JobTriggerVO jobTrigger) {
Job job = jobMapper.selectById(jobTrigger.getJobId());
Assert.notNull(job, () -> new SnailJobServerException("job can not be null."));
long count = accessTemplate.getGroupConfigAccess().count(new LambdaQueryWrapper<GroupConfig>()
@ -255,7 +255,9 @@ public class JobServiceImpl implements JobService {
// 设置now表示立即执行
jobTaskPrepare.setNextTriggerAt(DateUtils.toNowMilli());
jobTaskPrepare.setTaskExecutorScene(JobTaskExecutorSceneEnum.MANUAL_JOB.getType());
jobTaskPrepare.setTmpArgsStr(tmpArgsStr);
if (StrUtil.isNotBlank(jobTrigger.getTmpArgsStr())){
jobTaskPrepare.setTmpArgsStr(jobTrigger.getTmpArgsStr());
}
// 创建批次
terminalJobPrepareHandler.handle(jobTaskPrepare);

View File

@ -258,8 +258,8 @@ public class WorkflowServiceImpl implements WorkflowService {
}
@Override
public Boolean trigger(Long id, String tmpWfContext) {
Workflow workflow = workflowMapper.selectById(id);
public Boolean trigger(WorkflowTriggerVO triggerVO) {
Workflow workflow = workflowMapper.selectById(triggerVO.getWorkflowId());
Assert.notNull(workflow, () -> new SnailJobServerException("workflow can not be null."));
long count = accessTemplate.getGroupConfigAccess().count(
@ -276,8 +276,8 @@ public class WorkflowServiceImpl implements WorkflowService {
// 设置now表示立即执行
prepareDTO.setNextTriggerAt(DateUtils.toNowMilli());
prepareDTO.setTaskExecutorScene(JobTaskExecutorSceneEnum.MANUAL_WORKFLOW.getType());
if (Objects.nonNull(tmpWfContext)){
prepareDTO.setWfContext(tmpWfContext);
if (StrUtil.isNotBlank(triggerVO.getTmpWfContext())){
prepareDTO.setWfContext(triggerVO.getTmpWfContext());
}
terminalWorkflowPrepareHandler.handler(prepareDTO);