我正在使用webservice调用将SOAP消息发送到外部服务。 有时外部Web服务已关闭,所以我不想丢失那些失败的消息。 我将这些失败的消息推送到一个指定为重试队列的jms队列。
现在我的要求是我必须实现一种机制,在一段时间后(从半小时开始)处理来自重试队列的失败消息,并尝试再次传递给webservice。我应该在半小时的间隔内使用多次尝试。如果我没有;在固定次数的尝试后成功,我应该把信息放入死信队列。
我需要帮助来实现这一要求。
作为这个方向的第一步,我尝试在重试队列上使用jms轮询并将轮询间隔设置为半小时。此jms轮询作业每半小时唤醒一次,并处理重试队列中存在的所有消息。这种方法的缺点是,它尝试在第一次收到失败的消息时立即重新发送。对于后续消息,它工作正常。 因此,当某些消息失败并且我将该消息放入重试队列时,它会尝试立即重新发送该消息。