spring - 如何以编程方式为spring tasklet(不是 block )配置容错

标签 spring

以编程方式为块配置容错的工作方式如下:

stepBuilders.get("step")
  .<Partner,Partner>chunk(1)
  .reader(reader())
  .processor(processor())
  .writer(writer())
  .listener(logProcessListener())
  .faultTolerant()
  .skipLimit(10)
  .skip(UnknownGenderException.class)
  .listener(logSkipListener())
  .build();

诀窍是,通过添加“块”,链切换到提供“容错”方法的 SimpleStepBuilder。

我的问题是,如果您只有一个 tasklet(没有读取器、处理器、写入器),该怎么做?

定义 tasklet 的工作方式如下:
stepBuilders.get("step")
  .tasklet(tasklet())
  .build();

“tasklet”的使用切换到不提供“faultTolerant”方法的 TaskletStepBuilder。因此,我看不出如何定义诸如 skipLimit 之类的属性。

有任何想法吗?

最佳答案

一个 Tasklet没有要跳过的“项目”的概念,因此容错仅对面向块的步骤有意义。我建议您在原始版本中使用 Spring Retry(1.1.0.RELEASE 现在已经发布,并且您有一些流畅的构建器选项和 @Retryable 注释)。

关于spring - 如何以编程方式为spring tasklet(不是 block )配置容错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23523130/

相关文章:

spring - Spring 中的上下文注解有什么作用?

java - java.time 的 Spring DateTimeFormat 配置

spring - 为什么自调用不适用于 Spring 代理(例如使用 AOP)?

java - 使用 spring 从数据库构造一个对象,指定要从中构造对象的行 ID

java - 不同的存储库对象将被注入(inject)以引用

java - Spring 4 中 register-defaults ="false"的等价物是什么?

java - 可变性和 Spring

java - 如何覆盖 Spring Security 中特定端点的角色?

java - 使用 Hibernate Validator 在错误消息中包含字段名称

Spring security oauth2 和表单登录配置