src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/config/ThreadPoolConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/model/MesPakoutParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -7,6 +7,7 @@ import com.zy.asrs.task.handler.OrderSyncHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -24,18 +25,9 @@ @Autowired private OrderService orderService; @Scheduled(cron = "0/3 * * * * ? ") private void queryAndSave(){ // for (WrkMast wrkMast : wrkMasts) { // ReturnT<String> result = workLogHandler.start(wrkMast); // if (!result.isSuccess()) { // log.error("工作档[workNo={}]历史档处理失败", wrkMast.getWrkNo()); // } // } } @Scheduled(cron = "0/5 * * * * ? ") private void completeAndReport(){ @Async("orderThreadPool") public void completeAndReport(){ List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L).eq("status", 1)); for (Order order : orders) { ReturnT<String> result = orderSyncHandler.start(order); src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -107,6 +107,9 @@ pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime())); pakoutParam.setLgortFrom("5006"); pakoutParam.setLgortTo("1111"); if (!pakoutParam.isTag()) { pakoutParam.setKunnr("C1000"); } pakoutParam.setOrderNo(order.getOrderNo()); for (OrderDetl orderDetl : orderDetls) { String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch(); src/main/java/com/zy/common/config/ThreadPoolConfig.java
New file @@ -0,0 +1,36 @@ package com.zy.common.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.ThreadPoolExecutor; /** * Created by vincent on 2022/5/21 */ @Configuration @EnableAsync public class ThreadPoolConfig { @Bean(name = "orderThreadPool") public ThreadPoolTaskExecutor orderThreadPool() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); int core = Runtime.getRuntime().availableProcessors(); core = 2; //设置核心线程数 executor.setCorePoolSize(core); //设置最大线程数 executor.setMaxPoolSize(core * 10 + core); //除核心线程外的线程存活时间 executor.setKeepAliveSeconds(3); //缓冲队列 executor.setQueueCapacity(core); executor.setThreadNamePrefix("order-task-"); //设置拒绝策略 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); return executor; } } src/main/java/com/zy/common/model/MesPakoutParam.java
@@ -29,6 +29,9 @@ // 目的地 - 写死 private String lgortTo; // 客户号 private String kunnr; private List<Detl> list = new ArrayList<>(); @Data