Jakarta ee 如何进行长期HTTP交付重试?
情景:Jakarta ee 如何进行长期HTTP交付重试?,jakarta-ee,ejb,Jakarta Ee,Ejb,情景: JMS队列中的许多消息 MDB将它们交付到远程HTTP服务器 远程服务器可能已关闭 需要一种不会阻塞整个服务器的重试机制 每1小时进行几天的重新交付 我的想法是,当新消息到达JMS队列时,让MDB立即尝试重新交付,但要将此限制为(比如)每1分钟5次。然后将消息从JMS队列中删除并放入数据库中。另一个(@Scheduled)EJB将每隔1小时从DB接收未发送的消息,并在其自己的线程中发送它们 有更简单的方法吗?有,但这取决于您使用的JMS提供程序。不幸的是,目前jmsapi中不支持延迟消息
有更简单的方法吗?有,但这取决于您使用的JMS提供程序。不幸的是,目前jmsapi中不支持延迟消息,这无疑是解决问题的最优雅的解决方案。但是,如果您正在使用以下一些JMS提供程序:Oracle AQ、JBoss、OpenJMS、ActiveMQ;它们内置支持通过呼叫发送延迟消息:
msg.setLongProperty("SOME-PROVIDER-SPECIFIC-PARAMETER, delay);
参考: