【发布时间】:2021-02-11 17:13:29
【问题描述】:
消息选择器是否也可以与 receiveNowait() 方法一起用于同步过程。它适用于receive() 方法,但想知道IBM mq 的receiveNoWait。 创建消费者时添加消息选择器。
编辑 1: 我已经使用 receiveNowait() 方法进行了测试,并且选择器不起作用。我不知道问题出在我的选择器或 receivenowait 方法上。以下是我使用的选择器:
String messageSelector = "JMSTimestamp <= " + System.currentTimeMillis() - 180000;
receiver = (MessageConsumer) session.createConsumer(replyQueue, messageSelector);
这意味着,接收者只能接收比当前时间早 3 分钟的消息。 谁能弄清楚是什么问题。
编辑 2: 经过完整测试,我发现问题出在选择器上,JMSTimeStamp 在选择器表达式中的正确用法是什么?
【问题讨论】:
-
...你试过了吗?知识中心是否有任何东西表明它不起作用?
-
JoshMc 知识中心里什么都没有,但连一个例子都没有,所以有疑问。我现在要试试。看看它是否有效。
-
正如@JustinBertram 所指出的,我认为它没有理由不起作用。
-
根据我的测试结果,选择器无法与 receiveNoWait 一起使用。我会在某个时候更新代码
-
如果您使用
receive()或receive(long),选择器是否按预期工作?