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,6 +96,8 @@ public enum ErrorMessage { | ||
96 | EXECUTE_COMMAND_IS_NULL(400072,"执行命令不能为空"), | 96 | EXECUTE_COMMAND_IS_NULL(400072,"执行命令不能为空"), |
97 | DEVICE_NAME_ALREADY_EXISTS(400073,"别名或设备名称已被使用"), | 97 | DEVICE_NAME_ALREADY_EXISTS(400073,"别名或设备名称已被使用"), |
98 | TENANT_USED_THIS_TENANT_PROFILE_ID(400074,"【%s】正在使用该租户配置"), | 98 | TENANT_USED_THIS_TENANT_PROFILE_ID(400074,"【%s】正在使用该租户配置"), |
99 | + DEVICE_PROFILE_USED_BY_DEVICE(400075,"有设备使用待删除配置,请先删除设备或者修改设备配置"), | ||
100 | + TASK_CENTER_IS_DISABLED(400076,"【%s】任务是禁用状态,不能执行"), | ||
99 | HAVE_NO_PERMISSION(500002,"没有修改权限"); | 101 | HAVE_NO_PERMISSION(500002,"没有修改权限"); |
100 | private final int code; | 102 | private final int code; |
101 | private String message; | 103 | private String message; |
@@ -310,24 +310,22 @@ public class TkTaskCenterServiceImpl | @@ -310,24 +310,22 @@ public class TkTaskCenterServiceImpl | ||
310 | @Override | 310 | @Override |
311 | public boolean immediateExecute(TaskImmediateExecuteDTO immediateExecuteDTO, String tenantId) | 311 | public boolean immediateExecute(TaskImmediateExecuteDTO immediateExecuteDTO, String tenantId) |
312 | throws SchedulerException { | 312 | throws SchedulerException { |
313 | - // 放入缓存 | ||
314 | String taskCenterId = immediateExecuteDTO.getId(); | 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 | SysJobDTO sysJobDTO = tkSysJobService.findSysJobBySourceId(taskCenterId); | 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 | private void updateTaskCenterCache(TkTaskCenterEntity entity) { | 331 | private void updateTaskCenterCache(TkTaskCenterEntity entity) { |