通过@PostConstruct 消费队列怎么不执行?
通过@PostConstruct 启动一个线程去消费队列,
我在另外地方丢了消息到队列,怎么while(true) 咋不消费?
@PostConstruct
public void processOrder() {
ExecutorService e = Executors.newFixedThreadPool(2);
e.execute(() -> {
while (true) {
try {
/**读取队列数据*/
OrderMsg orderMsg = OrderMessageQueue.getQueue().consume();
if (orderMsg != null) {
//匹配工作
log.info("-------------------正在匹配------订单号 {}-------------", orderMsg.getOrderId());
matchService.match(orderMsg.getOrderId(), orderMsg.getOrderId(), orderMsg.getOrderDirection());
}
} catch (InterruptedException ex) {
log.error(ex.getMessage());
}
}
});
}
队列的设计:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论