我正在使用Spring Batch,我的步骤配置如下:
@Bean
public Step testStep(
JdbcCursorItemReader<TestStep> testStageDataReader,
TestStepProcessor testStepProcessor,
CompositeItemWriter<Writer> testWriter,
PlatformTransactionManager transactionManager,
JobRepository jobRepository) {
return stepBuilderFactory
.get("TESTING")
.<>chunk(100)
.reader(testStageDataReader)
.processor(testStepProcessor)
.writer(testWriter)
.faultTolerant()
.skip(DataIntegrityViolationException.class)
.skipLimit(1)
.listener(new SkipTestListener())
.transactionManager(transactionManager)
.repository(jobRepository)
.build();
}
我的复合项目编写器
@Bean
public CompositeItemWriter<Writer> testWriter(
Writer1 writer1,
Writer2 writer2,
Writer3 writer3)
throws Exception {
List<ItemWriter<? super Writer>> writers = new ArrayList<>();
writers.add(writer1);
writers.add(writer2);
writers.add(writer3);
CompositeItemWriter<Writer> writers = new CompositeItemWriter<>();
workingWellDailyMemberAggWriter.setDelegates(writers);
workingWellDailyMemberAggWriter.afterPropertiesSet();
return writers;
}
现在,如果writer1上存在DataIntegrityViolationException,则会在我进行日志记录的地方调用跳过侦听器,然后控制转到下一步
我正在寻找一种方法,将控件转到当前跳过的下一个写入程序
这种类型的编排需要通过您自己的复合编写器来完成。Spring Batch没有现成的组件来处理这样单个组件逻辑中的异常。
我正在尝试为这样的情况编写测试用例,在这个情况下,我期待的是datatruncation异常,我试图使用assert equals和比较消息来断言相同的情况,但是看起来像是比较两个字符串,有没有更好的方法来为这样的异常编写测试用例。 我正在使用JUnit5
请参考附件截图了解表格结构。 Empd_Id是'employee'表中的主键,该主键与'product'表中的'product_id'一起成为复合键的一部分。任何员工都可以拥有多个产品,因此在这种情况下,“员工-产品”表之间就变成了“一对多”关系。现在我很困惑,是只需要编写1个JpaRepository接口(即为employee编写),还是需要编写2个JpaRepository接口(1个为empl
我阅读了有关自定义异常和as的内容: Thorben建议:https://stackify.com/java-custom-exceptions/#wpautbox_about Baeldung在这里建议:https://www.baeldung.com/java-new-custom-exception 自定义例外应该比原始例外更有益,否则会失去其目的。正当要做到这一点,我们应该始终将可丢弃的原
问题内容: 有没有办法只处理过滤器中的响应。 下面编写的代码是否正确? 问题答案: 这取决于您想要什么。通常,您的样本虽然不正确。之后chain.doFilter又回来了,这是来不及做的任何回应。此时,整个响应已发送到客户端,您的代码无法访问它。 您需要做的是包装request和/或包装response到您自己的类中,将这些包装传递给doFilter方法,并处理包装中的所有处理。 为了使其更容易,
问题内容: 我试图研究应如何精确地编写异步函数。经过大量的文档研究之后,我仍然不清楚。 如何为Node编写异步函数? 如何正确实施错误事件处理? 问我问题的另一种方式是:我应该如何解释以下功能? 问题答案: 您似乎将异步IO与异步功能混淆了。由于非阻塞IO更好,所以node.js使用异步非阻塞IO。理解它的最好方法是去观看ryan dahl的一些视频。 如何为Node编写异步函数? 只需编写普通函
在我的文件中,我有很多服务: nginx mysql 雷迪斯 回声 php ... 但也有一些我与docker compose一起使用的CLI实用程序运行--rm: 工匠 作曲家 npm 当我启动我的系统时,我会编写。不幸的是,这也会尝试启动所有CLI实用程序。有没有办法在我的docker compose中分离这两个类别?