package com.central.core.socket.asynpush.threadWorkers;
//import com.ruoyi.whty.domain.KsUserFaceInfo;
//import com.ruoyi.whty.service.IKsUserFaceInfoService;
//import com.ruoyi.whty.utils.FastDFSClientWrapper;
import com.central.core.socket.asynpush.CyNettyModel;
import com.central.core.socket.asynpush.concurrent.ThreadFactoryImpl;
import com.central.core.socket.netty.util.NettyClient;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
//import gate.base.domain.request;
/**
* 产品队列
*
* @author yangcheng
* @Description:
* @date: 2019年3月30日
*/
@Slf4j
public class CyNettyQueue implements DataTransfer {
private NettyClient nettyClient = ApplicationContextUtil.getBean(NettyClient.class);
// private FastDFSClientWrapper fastDFSClientWrapper = ApplicationContextUtil.getBean(FastDFSClientWrapper.class);
private BlockingQueue<CyNettyModel> productQueue;
private final int poolSize;
ExecutorService exService;
public CyNettyQueue(BlockingQueue<CyNettyModel> productQueue, int poolSize) {
super();
this.productQueue = productQueue;
this.poolSize = poolSize;
exService = Executors.newFixedThreadPool(poolSize, new ThreadFactoryImpl("msgTrans_ProductQueue_", false));
}
@Override
public void run() {
for (int i = 0; i < poolSize; i++) {
exService.execute(new Runnable() {
@Override
public void run() {
while (true) {
CyNettyModel pcCenterOrder = null;
try {
pcCenterOrder = productQueue.take();//获取从Server4Terminal发送过来的上行报文对象
if (pcCenterOrder == null) {
continue;
}
nettyClient.connectServer(pcCenterOrder.getImei(), pcCenterOrder.getMsg(),pcCenterOrder.getIccid());
//取值上传文件服务器并更新数据库
log.info("成研队列大小为--->"+productQueue.size());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
}
});
}
}
@Override
public void start() throws Exception {
new Thread(this).start();
}
}
成研队列CyNettyQueue
最新推荐文章于 2024-10-06 20:16:20 发布