【发布时间】:2017-01-04 18:57:08
【问题描述】:
我有以下监听方法:
@Override
public void onMessage(Message message, Channel channel) {
try {
// do something bad :)
} catch (Exception e){
try {
long dt = null != message.getMessageProperties()
? message.getMessageProperties().getDeliveryTag()
: 0;
channel.basicReject(dt, true);
} catch(IOException io) {
logger.error("IO-COMMON", io);
}
}
}
问题是基本拒绝不起作用,我不知道为什么。如何优雅地拒绝它?我认为如果我拒绝一条消息,它应该被重新排队并驻留就像缓存一样,然后再转到下一个工作人员。但实际上这条消息似乎丢失了。
【问题讨论】:
-
1.空间。大约。运营商。这是每个人都同意的事情。 2. 为什么你的三元间隔这么大?我通常看到的样式,当它不在一行时,是
condition\n? if-true\n: if-false; -
抱歉,如果您愿意,我可以修复它,我只是想强调一下送货标语。谢谢
-
我上面提到的样式仍然单独在一行 - 注意
\ns 代表新行 - 如果你想强调它,你可以发表评论解释什么是重要的是它旁边。运算符周围的空格只是为了便于阅读,但在调试时会产生很大的不同,所以这是一个好习惯。 -
好的,我会解决的,谢谢
-
"reside is sth like cache" ?
标签: java spring-amqp spring-rabbit