diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java index 447bfb3..9172ab7 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java @@ -24,11 +24,10 @@ import org.springframework.web.bind.annotation.RestController; */ @EnableAsync @RestController +@EnableDynamicTp @SpringBootApplication(exclude = { - QuartzAutoConfiguration.class, org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class }) -@EnableDynamicTp @ServletComponentScan @EnableTransactionManagement @EnableMethodCache(basePackages = "org.nl") diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java index 382f670..ca4a3e6 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java @@ -23,7 +23,7 @@ import static org.quartz.TriggerBuilder.newTrigger; public class QuartzManage { private static final String JOB_NAME = "TASK_"; - @Resource(name = "scheduler") + @Resource(name = "quartzScheduler") private Scheduler scheduler; public void addJob(SysQuartzJob quartzJob) { diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AutoTask.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AutoTask.java new file mode 100644 index 0000000..380c552 --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AutoTask.java @@ -0,0 +1,72 @@ +package org.nl.wms.sch_manage.service.util; + + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.sch_manage.enums.TaskStatus; +import org.nl.wms.sch_manage.service.ISchBaseTaskService; +import org.nl.wms.sch_manage.service.dao.SchBaseTask; +import org.nl.wms.warehouse_management.enums.IOSConstant; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoTask { + + /** + * 任务服务 + */ + @Autowired + private ISchBaseTaskService taskService; + + /** + * 任务工厂服务 + */ + @Autowired + private TaskFactory taskFactory; + + private final RedissonClient redissonClient; + + @SneakyThrows + public void run() { + RLock lock = redissonClient.getLock(this.getClass().getName()); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + sendTask(); + } + } catch (Exception e) { + if (tryLock) { + lock.unlock(); + } + } + } + + /** + * 下发任务 + */ + private void sendTask() { + List taskList = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getIs_delete, IOSConstant.IS_DELETE_NO) + .eq(SchBaseTask::getTask_status, TaskStatus.CREATE.getCode())); + if (ObjectUtil.isEmpty(taskList)) { + return; + } + // 整理下发acs参数 + for (SchBaseTask taskDao : taskList) { + AbstractTask task = taskFactory.getTask(taskDao.getConfig_code()); + task.sendTaskOne(taskDao.getTask_id()); + } + } +}