在JMS MessageDriven Bean中重试

时间:2015-12-25 05:27:42

标签: java java-ee jms

我有一个MessageDriven bean,它使用消息并通过REST API将消息发送到其他地方。像这样:

@MessageDriven(name = "n", activationConfig = {...})
public class SubmitMessageBean implements MessageListener {

    @Resource
    private MessageDrivenContext context;

    @Override
    public void onMessage(final Message message) {
        try {
            // Submit data to somewhere with REST API
        } catch (IOException ex) {
            this.context.getRollbackOnly();
        } catch (JMSException ex) {
            e.printStackTrace();
        }
    }
}

发生错误时,我想在一分钟后重试发送。无论如何要做到这一点?

1 个答案:

答案 0 :(得分:0)

好的,我明白了。您还可以轻松添加延迟,为远程系统提供更多时间来解决错误。

if (a1 > 0 && a2 < 0)
    b = 1;
else if (a3 < 5)
    b = 2;
else
    b = 3;

当然,您需要使用自己正确的值填充{...}。