Browse Source

add:定时任务

master
刘先源 1 week ago
parent
commit
f9832c0448
  1. 3
      wms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
  2. 2
      wms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/QuartzManage.java
  3. 72
      wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch_manage/service/util/AutoTask.java

3
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")

2
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) {

72
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<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
.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());
}
}
}
Loading…
Cancel
Save