亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有 receiveNoWait() 的消息選擇器

帶有 receiveNoWait() 的消息選擇器

倚天杖 2022-07-20 19:26:57
消息選擇器是否也可以與 receiveNowait() 方法一起用于同步過程。它適用于receive() 方法,但想知道IBM mq 的receiveNoWait。創建消費者時添加消息選擇器。編輯 1:我已經使用 receiveNowait() 方法進行了測試,并且選擇器不起作用。我不知道問題出在我的選擇器或 receivenowait 方法上。以下是我使用的選擇器:String messageSelector = "JMSTimestamp <= " + System.currentTimeMillis() - 180000;  receiver = (MessageConsumer) session.createConsumer(replyQueue, messageSelector);這意味著,接收者只能接收比當前時間早 3 分鐘的消息。誰能弄清楚是什么問題。編輯2:完成測試后,我發現問題出在選擇器上,JMSTimeStamp 在選擇器表達式中的正確用法是什么?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

pepared system.currnetTimeMillis() 值在選擇器運行時不會更新。

在這里,您將在初始化選擇器時修復“當前”時間戳。您應該為您的查詢執行類似“endValidityDate <= (JMSTimestamp-24 60 1000)”的查詢(與任何使用固定值而不是動態值的 SQL 查詢相同的問題)。


查看完整回答
反對 回復 2022-07-20
?
森欄

TA貢獻1810條經驗 獲得超5個贊

我不能專門談論 IBM MQ 實現,但從 JMS 的角度來看,JMS 規范中沒有任何內容限制選擇器的使用,receiveNoWait因此我希望它可以在任何兼容的實現中工作。



查看完整回答
反對 回復 2022-07-20
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

receive()、receive(long timeout) 和 receiveNoWait() 在交付內容方面應該完全相同。事實上,有幾個實現是通過調用另一種方法來實現的。



查看完整回答
反對 回復 2022-07-20
  • 3 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號