|
|
|
@ -1,6 +1,10 @@
|
|
|
|
|
package cn.estsh.i3plus.core.apiservice.mq;
|
|
|
|
|
|
|
|
|
|
import cn.estsh.i3plus.core.apiservice.controller.DemoRestController;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
|
|
|
|
|
import com.rabbitmq.client.Channel;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.amqp.core.Message;
|
|
|
|
|
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
@ -16,6 +20,36 @@ import java.io.IOException;
|
|
|
|
|
**/
|
|
|
|
|
@Component
|
|
|
|
|
public class I3CoreQueueReceiver {
|
|
|
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(I3CoreQueueReceiver.class);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 系统邮件处理队列
|
|
|
|
|
* @param msg
|
|
|
|
|
* @param channel
|
|
|
|
|
* @param message
|
|
|
|
|
* 发送:rabbitTemplate.convertAndSend(I3CoreQueueConfig.IMPP_MESSAGE_QUEUE, new SysMessage(....));
|
|
|
|
|
*/
|
|
|
|
|
@RabbitListener(queues = I3CoreQueueConfig.IMPP_MESSAGE_QUEUE)
|
|
|
|
|
public void processImppMessage(SysMessage msg, Channel channel, Message message) {
|
|
|
|
|
try {
|
|
|
|
|
LOGGER.info("【MQ-IMPP_MESSAGE_QUEUE】数据接收成功:{}",msg);
|
|
|
|
|
|
|
|
|
|
//信息已处理
|
|
|
|
|
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
LOGGER.error("【MQ-IMPP_MESSAGE_QUEUE】处理出错:{}",e.getMessage(),e);
|
|
|
|
|
//丢弃这条消息
|
|
|
|
|
try {
|
|
|
|
|
// 未成功处理,重新发送
|
|
|
|
|
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
|
|
|
|
|
} catch (IOException e1) {
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/********************* 消息队列处理demo *******************/
|
|
|
|
|
|
|
|
|
|
/*@RabbitListener(queues = I3CoreQueueConfig.DEMO_STR_QUEUE)
|
|
|
|
|
public void getObjQueue(String data) {
|
|
|
|
@ -71,10 +105,12 @@ public class I3CoreQueueReceiver {
|
|
|
|
|
//在队列删掉 不会再发了 否则消息服务器以为这条消息没处理掉 后续还会在发
|
|
|
|
|
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace(); //丢弃这条消息
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
//丢弃这条消息
|
|
|
|
|
// channel.basicNack(message.getMessageProperties().getDeliveryTag(), false,false);
|
|
|
|
|
// System.out.println("receiver fail");
|
|
|
|
|
try {
|
|
|
|
|
//
|
|
|
|
|
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,true);
|
|
|
|
|
} catch (IOException e1) {
|
|
|
|
|
e1.printStackTrace();
|
|
|
|
|