tcp也延时发送

泸州-视觉+扫码-昆船
LAPTOP-S9HJSOEB\昊天 9 months ago
parent d12c81a48e
commit 5b1688422e

@ -51,6 +51,7 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.30</version>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>

@ -49,6 +49,7 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.30</version>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>

@ -37,6 +37,7 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.30</version>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
</dependencies> </dependencies>

@ -34,6 +34,7 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.30</version>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>

@ -76,6 +76,7 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.30</version>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>

@ -25,7 +25,7 @@ public class IndustrialCameraVO implements Delayed {
private long executeTime; private long executeTime;
public IndustrialCameraVO(){ public IndustrialCameraVO(){
this.executeTime = System.currentTimeMillis() + 2000; this.executeTime = System.currentTimeMillis() + 3000;
} }
/** /**
* *

@ -13,6 +13,7 @@ import com.zhehekeji.web.entity.KuKou;
import com.zhehekeji.web.mapper.KukouMapper; import com.zhehekeji.web.mapper.KukouMapper;
import com.zhehekeji.web.pojo.IndustrialCameraVO; import com.zhehekeji.web.pojo.IndustrialCameraVO;
import com.zhehekeji.web.pojo.OrderSearch; import com.zhehekeji.web.pojo.OrderSearch;
import com.zhehekeji.web.service.ksec.CommandQueue;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
@ -29,7 +30,6 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.zhehekeji.web.service.ksec.CommandQueue.addCommand;
@Service @Service
@Slf4j @Slf4j
@ -55,7 +55,7 @@ public class KuKouService extends ServiceImpl<KukouMapper,KuKou> implements IS
private ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(10); // 初始化一个包含2个线程的调度池; // 可以通过配置注入或使用 @Async 的 scheduler private ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(10); // 初始化一个包含2个线程的调度池; // 可以通过配置注入或使用 @Async 的 scheduler
public void setHttp(IndustrialCameraVO scTransmission, Boolean flag) { public void setHttp(IndustrialCameraVO scTransmission, Boolean flag) {
addCommand(scTransmission); CommandQueue.addCommand(scTransmission);
} }
private void sendWithRetry(IndustrialCameraVO scTransmission, Boolean flag, int retryCount) { private void sendWithRetry(IndustrialCameraVO scTransmission, Boolean flag, int retryCount) {

@ -21,11 +21,14 @@ import java.time.LocalDateTime;
import java.util.concurrent.*; import java.util.concurrent.*;
import static com.zhehekeji.web.service.KuKouService.setTrayCode; import static com.zhehekeji.web.service.KuKouService.setTrayCode;
import static java.lang.Thread.sleep;
@Slf4j @Slf4j
public class CommandQueue { public class CommandQueue {
// 增加queue // 增加queue,固定延时3s
public static void addCommand(IndustrialCameraVO scTransmission) { public static void addCommand(IndustrialCameraVO scTransmission) {
scTransmission.setExecuteTime(System.currentTimeMillis() + 3000);
delayQueue.add(scTransmission); delayQueue.add(scTransmission);
} }
private static ExecutorService exec = Executors.newFixedThreadPool(1); private static ExecutorService exec = Executors.newFixedThreadPool(1);
@ -37,6 +40,26 @@ public class CommandQueue {
exec.execute(new Consumer(restTemplate, configProperties)); exec.execute(new Consumer(restTemplate, configProperties));
} }
public static void main(String[] args) {
ConfigProperties configProperties = new ConfigProperties();
configProperties.setKsec(new ConfigProperties.KSEC());
configProperties.getKsec().setReportHttp("http://127.0.0.1:8000");
sentHttp(new RestTemplate(),new ConfigProperties());
System.out.println(System.currentTimeMillis());
IndustrialCameraVO industrialCameraVO = new IndustrialCameraVO();
industrialCameraVO.setTrayCode("1321351351651351");
IndustrialCameraVO industrialCameraVO2 = new IndustrialCameraVO();
industrialCameraVO.setTrayCode("1321351351651351");
delayQueue.add(industrialCameraVO);
delayQueue.add(industrialCameraVO2);
try {
sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
private static class Consumer implements Runnable { private static class Consumer implements Runnable {
RestTemplate restTemplate ; RestTemplate restTemplate ;
ConfigProperties configProperties; ConfigProperties configProperties;
@ -54,6 +77,7 @@ public class CommandQueue {
IndustrialCameraVO scTransmission = delayQueue.take(); IndustrialCameraVO scTransmission = delayQueue.take();
if(scTransmission != null){ if(scTransmission != null){
System.out.println(System.currentTimeMillis());
try { try {
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/json"); headers.set("Content-Type", "application/json");

@ -213,6 +213,11 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
}else { }else {
ksecInfo.getData().setAckStatus(0); ksecInfo.getData().setAckStatus(0);
} }
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
log.error("sleep error",e);
}
ctx.channel().writeAndFlush(ksecInfo); ctx.channel().writeAndFlush(ksecInfo);
log.info("盘点结束:"+ksecInfo.getData().toString()); log.info("盘点结束:"+ksecInfo.getData().toString());
@ -221,6 +226,11 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
ksecInfo.getData().setCmdName("SC02"); ksecInfo.getData().setCmdName("SC02");
ksecInfo.getData().setCheckRlt(flag?1:0); ksecInfo.getData().setCheckRlt(flag?1:0);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
log.error("sleep error",e);
}
ctx.channel().writeAndFlush(ksecInfo); ctx.channel().writeAndFlush(ksecInfo);
} }
//找到该货位的最后一张照片与现在的照片比照 //找到该货位的最后一张照片与现在的照片比照

Loading…
Cancel
Save