重试处理 - 监听器

优质
小牛编辑
140浏览
2023-12-01

常常它是有用的能够接受附加的回调为了切割关注点穿过一些不同的重试
为了这个目的Spring Batch 提供了RetryListene 接口,RetryTemplate 允许使用者注册RetryListene,并且他们将发送回调随从RetryContextThrowable,在迭代期间可用。

这个接口看起来像这样:

  1. public interface RetryListener {
  2. void open(RetryContext context, RetryCallback<T> callback);
  3. void onError(RetryContext context, RetryCallback<T> callback, Throwable e);
  4. void close(RetryContext context, RetryCallback<T> callback, Throwable e);
  5. }

open 和 close 回调在整个的重试前后调用在简单的实例和onError适用于个体的RetryCallback调用,close方法可能也需要接收一个Throwable.如果已经有一个错误它是最后一个在RetryCallback抛出。

注意当有多余一个监听的时候,它们是在一个列表。所以它们是顺序的,在这种情况下,open方法将被顺序访问执行,onError 和 close方法被倒序执行。