什么是AMQP/JMS世界中BrokerProperty“setScheduledEnqueueTimeUtc”的等效参数

问题描述:

我正在研究需要向Azure服务总线发送消息的Java应用程序,以便在某个延迟后消息可用于下一个进程。什么是AMQP/JMS世界中BrokerProperty“setScheduledEnqueueTimeUtc”的等效参数

使用Azure sdk,可以通过在Brokered消息上设置setScheduledEnqueueTimeUtc BrokerProperty来实现,但我无法在AMQP/JMS世界中找到相应的代码。

使用带密钥的Message.setProperty,值对导致属性被置于应用程序属性下,消息立即出现在队列中。

有没有办法实现这种延迟?

JMS 2.0规范定义了“传送延迟”功能,它可以让消息在指定的时间段后传送。请参阅http://www.oracle.com/technetwork/articles/java/jms2messaging-1954190.html了解更多详情。您将需要一个实现JMS 2.0规范的消息传递提供程序。

+0

感谢Shashi,升级到JMS2.0,但得到以下错误,表明Azure可能不支持它 - 错误消息:在JMS处理期间发生未分类异常;嵌套异常是javax.jms.JMSException:远程不支持延迟消息传递' – Ani

+0

看起来您已将JMS客户端升级到2.0,但不是消息传递提供程序。必须更新JMS客户端和消息传递提供程序以支持交付延迟。你使用哪个消息提供商? – Shashi

+0

带有qpid-jms-client v0.20.0的spring-jms v4.3.3 – Ani