在Apache Camel中使用Exchange exchange = consumer.receive();模板在PollingConsumer之后是否有可能表示错误?例如,如果您从Bean处理器抛出错误,则Camel在控制台中打印一个堆栈跟踪,并停止路由。是否可以使用PollingConsumer进行相同的操作,可能再次重试该消息?有这个PollingConsumerPollStrategy,但看起来是为了在receive()之前进行错误处理。

最佳答案

没有轮询使用者是基于队列的交换,因此它返回已检索到成功交换的交换。如果无法在该时间内检索到交换,则可以使用带有超时的receive来引发超时异常。

如果要例外,请使用Consumer而不是PollingConsumer

09-04 03:46