Commit 6096393127ed4ac762c9cfac74d75c85e0e036a6
1 parent
19f82181
fix: 修复任务中心立即执行bug,设置只有任务中心是启用状态才可以立即执行
Showing
2 changed files
with
14 additions
and
14 deletions
... | ... | @@ -96,6 +96,8 @@ public enum ErrorMessage { |
96 | 96 | EXECUTE_COMMAND_IS_NULL(400072,"执行命令不能为空"), |
97 | 97 | DEVICE_NAME_ALREADY_EXISTS(400073,"别名或设备名称已被使用"), |
98 | 98 | TENANT_USED_THIS_TENANT_PROFILE_ID(400074,"【%s】正在使用该租户配置"), |
99 | + DEVICE_PROFILE_USED_BY_DEVICE(400075,"有设备使用待删除配置,请先删除设备或者修改设备配置"), | |
100 | + TASK_CENTER_IS_DISABLED(400076,"【%s】任务是禁用状态,不能执行"), | |
99 | 101 | HAVE_NO_PERMISSION(500002,"没有修改权限"); |
100 | 102 | private final int code; |
101 | 103 | private String message; | ... | ... |
... | ... | @@ -310,24 +310,22 @@ public class TkTaskCenterServiceImpl |
310 | 310 | @Override |
311 | 311 | public boolean immediateExecute(TaskImmediateExecuteDTO immediateExecuteDTO, String tenantId) |
312 | 312 | throws SchedulerException { |
313 | - // 放入缓存 | |
314 | 313 | String taskCenterId = immediateExecuteDTO.getId(); |
315 | - String key = FastIotConstants.CacheConfigKey.TASK_IMMEDIATE_EXECUTE + "_" + taskCenterId; | |
316 | - cacheUtils.put(cacheName, key, immediateExecuteDTO); | |
314 | + boolean result = false; | |
317 | 315 | // 直接调用任务中心任务执行 |
318 | 316 | SysJobDTO sysJobDTO = tkSysJobService.findSysJobBySourceId(taskCenterId); |
319 | - if (null == sysJobDTO) { | |
320 | - sysJobDTO = new SysJobDTO(); | |
321 | - sysJobDTO.setSourceId(taskCenterId); | |
322 | - sysJobDTO.setInvokeTarget("rpcCommandTask.process('" + taskCenterId + "')"); | |
323 | - sysJobDTO.setJobGroup(JobGroupEnum.TASK_CENTER.name()); | |
324 | - sysJobDTO.setTenantId(tenantId); | |
325 | - sysJobDTO.setCronExpression(immediateExecuteDTO.getCronExpression()); | |
326 | - sysJobDTO.setJobName(immediateExecuteDTO.getName()); | |
327 | - sysJobDTO.setStatus(StatusEnum.DISABLE.getIndex()); | |
328 | - tkSysJobService.saveOrUpdateJob(sysJobDTO); | |
317 | + if (null != sysJobDTO) { | |
318 | + if (Objects.equals(sysJobDTO.getStatus(), StatusEnum.DISABLE.getIndex())) { | |
319 | + throw new TkDataValidationException( | |
320 | + String.format( | |
321 | + ErrorMessage.TASK_CENTER_IS_DISABLED.getMessage(), sysJobDTO.getJobName())); | |
322 | + } | |
323 | + result = tkSysJobService.run(sysJobDTO); | |
324 | + // 放入缓存 | |
325 | + String key = FastIotConstants.CacheConfigKey.TASK_IMMEDIATE_EXECUTE + "_" + taskCenterId; | |
326 | + cacheUtils.put(cacheName, key, immediateExecuteDTO); | |
329 | 327 | } |
330 | - return tkSysJobService.run(sysJobDTO); | |
328 | + return result; | |
331 | 329 | } |
332 | 330 | |
333 | 331 | private void updateTaskCenterCache(TkTaskCenterEntity entity) { | ... | ... |