Browse Source

乐观锁

master
常熟吴彦祖 5 months ago
parent
commit
1b8f6caf18
  1. 16
      src/main/java/com/gaotao/modules/automatedWarehouse/task/AgvTaskScheduler.java
  2. 16
      src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java
  3. 7
      src/main/resources/application.yml

16
src/main/java/com/gaotao/modules/automatedWarehouse/task/AgvTaskScheduler.java

@ -5,6 +5,7 @@ import com.gaotao.modules.automatedWarehouse.entity.WmsTransportTaskDetail;
import com.gaotao.modules.automatedWarehouse.service.AgvTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@ -20,6 +21,9 @@ public class AgvTaskScheduler {
@Autowired
private AgvTaskService agvTaskService;
@Value("${scheduler.agv.enabled:true}")
private boolean enabled;
/**
* 定时任务每分钟执行一次AGV任务优先级调度
@ -27,9 +31,15 @@ public class AgvTaskScheduler {
* 调度策略
* - 如果执行中任务数 >= 10则不下发新任务
* - 如果执行中任务数 < 10则下发多个优先级高的任务但总数不超过10
* 配置说明通过 scheduler.agv.enabled 控制是否启用
*/
@Scheduled(cron = "0 * * * * ?")
public void scheduleAgvTaskByPriority() {
// 检查定时任务开关
if (!enabled) {
return;
}
log.info("=== 开始执行AGV任务优先级调度定时任务 ===");
try {
@ -97,9 +107,15 @@ public class AgvTaskScheduler {
/**
* 定时任务每分钟执行一次AGV回调处理
* cron表达式0 * * * * ? 表示每分钟的第0秒执行
* 配置说明通过 scheduler.agv.enabled 控制是否启用
*/
@Scheduled(cron = "0 * * * * ?")
public void scheduleDOFeedback() {
// 检查定时任务开关
if (!enabled) {
return;
}
log.info("=== 开始处理AGV回调相关业务 ===");
try {

16
src/main/java/com/gaotao/modules/automatedWarehouse/task/WcsTaskScheduler.java

@ -5,6 +5,7 @@ import com.gaotao.modules.automatedWarehouse.entity.WmsOrderTask;
import com.gaotao.modules.automatedWarehouse.service.WcsTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@ -22,13 +23,22 @@ public class WcsTaskScheduler {
@Autowired
private WcsTaskService wcsTaskService;
@Value("${scheduler.wcs.enabled:true}")
private boolean enabled;
/**
* 定时任务每分钟执行一次WCS任务处理
* cron表达式0 * * * * ? 表示每分钟的第0秒执行
* 配置说明通过 scheduler.wcs.enabled 控制是否启用
*/
@Scheduled(cron = "0 * * * * ?")
public void scheduleWcsTaskProcessing() {
// 检查定时任务开关
if (!enabled) {
return;
}
log.info("=== 开始处理WCS入库/出库相关业务 ===");
try {
@ -70,9 +80,15 @@ public class WcsTaskScheduler {
/**
* 定时任务每分钟执行一次立库调栈板出库处理
* cron表达式0 * * * * ? 表示每分钟的第0秒执行
* 配置说明通过 scheduler.wcs.enabled 控制是否启用
*/
@Scheduled(cron = "0 * * * * ?")
public void scheduleWcsPalletOutTask() {
// 检查定时任务开关
if (!enabled) {
return;
}
log.info("=== 开始处理立库调栈板出库任务 ===");
try {

7
src/main/resources/application.yml

@ -128,3 +128,10 @@ wms:
key-prefix: "wms:queue:"
status-prefix: "wms:message:status:"
status-expire: 86400 # 状态过期时间(秒) 24小时
# 定时任务开关配置
scheduler:
agv:
enabled: true # AGV定时任务总开关(控制AgvTaskScheduler.java的所有定时任务)
wcs:
enabled: true # WCS定时任务总开关(控制WcsTaskScheduler.java的所有定时任务)
Loading…
Cancel
Save