@Bean
public JdbcPagingItemReader<NotificationRequest> notificationRequestJdbcPagingItemReader() {
JdbcPagingItemReader<NotificationRequest> reader = new JdbcPagingItemReader<>();
reader.setDataSource(this.dataSource);
reader.setFetchSize(1000);
reader.setRowMapper(new SmsSQLRowMapper());
PostgresPagingQueryProvider queryProvider = new PostgresPagingQueryProvider();
queryProvider.setSelectClause("subscriber_fk, event_time, record_flag, batch_date, message_type, cents_loanable, request_id, reason_code");
queryProvider.setFromClause("from tbl_sms_tracker_new");
Map<String, Order> sortKeys = new HashMap<>(1);
sortKeys.put("request_id", Order.ASCENDING);
queryProvider.setSortKeys(sortKeys);
reader.setQueryProvider(queryProvider);
return reader;
}
@Bean
public ItemWriter<NotificationRequest> notificationRequestAmqpItemWriter() {
AmqpTemplate aTemplate = (AmqpTemplate) applicationContext.getBean("amqpTemplate");
AmqpItemWriter<NotificationRequest> itemWriter = new AmqpItemWriter<>(aTemplate);
return itemWriter;
}
@Bean
public Step step1() {
return stepBuilderFactory.get("notificationStep1")
.<NotificationRequest, NotificationRequest>chunk(1000)
.reader(notificationRequestJdbcPagingItemReader())
.writer(notificationRequestAmqpItemWriter())
.faultTolerant()
.build();
}
@Bean
public Job job() {
return jobBuilderFactory.get("notificationJob")
.start(step1())
.build();
}
预期行为:
如果突然停止作业(kill-9
),那么JobRepository
无法知道作业的当前状态,因为之前没有人告诉它。您的作业可能仍然处于started
状态,而它不是(它已被杀死)。这就是为什么当试图重新启动一个被杀死的作业时会出现异常。您必须手动告诉作业存储库,您知道执行失败或应该被视为中止。有关这方面的更多详细信息:https://docs.spring.io/spring-batch/4.0.x/reference/html/job.html#aborting-a-job
我们当前的代码库具有以下重要特征: 一个代码库-但是很多批处理(我们在批处理之间重用代码) 目前,我们在代码库中有多个main()方法,并且只有不同的shell脚本来调用正确的main类。 我希望在Spring Batch中解决以下问题: null 提前谢了。
问题内容: 我想选择一堆在大多数情况下都是唯一的记录,但是有一些记录会发生两次。我希望只能选择具有最新日期的记录。到目前为止,这是我的查询: 就检索具有重复项的记录的最新记录而言,这是可行的,但是那些没有重复项的记录根本不会出现。 感谢您的帮助,如果我错过了一些显而易见的事情,我深表歉意。我是SQL游戏的新手。 问题答案: 有几种方法可以执行此操作,一种方法是像这样使用ROW_NUMBER: 这将
主要的问题是,如何更新表单中选择的几个字段。我想让用户选择他们想要更新的字段。例如,我有form类: 之后,我将在类中设置字段,例如,如果用户只想更改他们的名称和姓氏,我将通过方法从现有的中获取其余的字段,然后更改一些字段并将更改的对象保存到数据库中。
在jenkins job中,是否可以有多个git存储库并根据参数动态选择存储库?
我想调用一个函数时,选择的任何选项。类似于这样: 但不知何故不起作用。有人能帮忙吗。 请注意 我不想捕获更改事件,如果我选择已经选择选项,则不会触发更改事件
问题内容: 我正在寻找一个SQL查询来选择所有未由同一表上的另一个查询选择的记录。具体来说,我想选择所有具有特定字段(’fieldA’)重复项的记录,然后删除除其中一个记录以外的所有记录。 因此,一条select语句可能类似于以下内容(不起作用!): 如果不可能进行单个查询,那么最有效的解决方案是什么? 问题答案: 具体来说,我想选择所有具有特定字段(’fieldA’)重复项的记录,然后删除除其中