Я работаю над приложением Spring Batch и реализовал собственный Partitioner, чтобы разделить обработку на несколько потоков. У меня возникли проблемы с написанием теста JUnit 4 для моего partition метод. Я издевался над своим DataSource и JdbcTemplate, но я не уверен, что я утверждаю правильные условия или правильна ли моя настройка. Этот код проверяет количество вхождений чего-либо, что может быть чем угодно, от записей до событий, как указано методом по dto (объекту передачи данных). Вот что делает логика, описанная простыми словами:
Код запрашивает у dto количество вхождений с помощью метода dto.getNumOfOccur().
Если количество вхождений равно нулю (это означает, что вхождений не было), код устанавливает для dto статус «НОВЫЙ», указывая, что все, что проверяется, является новым или не происходило ранее.
Если какое-либо число больше нуля (это означает, что произошло хотя бы одно событие), статус устанавливается на «СУЩЕСТВУЕТ», что указывает на то, что событие не является новым и происходило раньше.
Этот статус устанавливается с помощью метода dto.setNeworexist() с указанием «NEW» или «EXISTS» в качестве
```
package com.bofa.sst.batch.listener;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobExecutionListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.bofa.sst.batch.config.M2MDynamicConfigPropertiesRepository;
@Component
public class CollectionLettersCustomJobListener implements JobExecutionListener {
@Autowired
private M2MDynamicConfigPropertiesRepository dynamicConfigPropRepository;
@Override
public void beforeJob(JobExecution jobExecution) {
// Setting properties in the execution context
String sourceDir = dynamicConfigPropRepository.findPropertyValueByPropertyName("collectionletters.file.watcher.directory.path.source");
String destDir = dynamicConfigPropRepository.findPropertyValueByPropertyName("wExtract.output.flat.file.path");
jobExecution.getExecutionContext().putString("sourceDir", sourceDir);
jobExecution.getExecutionContext().putString("destDir", destDir);
}
@Override
public void afterJob(JobExecution jobExecution) {
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
jobExecution.setExitStatus(jobExecution.getExitStatus().addExitDescription("Job Launched Successfully.."));
} else {
jobExecution.setExitStatus(jobExecution.getExitStatus().addExitDescription(jobExecution.getFailureExceptions().toString()));
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... better-way
Как лучше написать этот преобразователь строк [закрыто] ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1722344868
Anonymous
Я работаю над приложением Spring Batch и реализовал собственный [b]Partitioner[/b], чтобы разделить обработку на несколько потоков. У меня возникли проблемы с написанием теста JUnit 4 для моего [b]partition[/b] метод. Я издевался над своим [b]DataSource[/b] и [b]JdbcTemplate[/b], но я не уверен, что я утверждаю правильные условия или правильна ли моя настройка. Этот код проверяет количество вхождений чего-либо, что может быть чем угодно, от записей до событий, как указано методом по dto (объекту передачи данных). Вот что делает логика, описанная простыми словами:
Код запрашивает у dto количество вхождений с помощью метода dto.getNumOfOccur().
Если количество вхождений равно нулю (это означает, что вхождений не было), код устанавливает для dto статус «НОВЫЙ», указывая, что все, что проверяется, является новым или не происходило ранее.
Если какое-либо число больше нуля (это означает, что произошло хотя бы одно событие), статус устанавливается на «СУЩЕСТВУЕТ», что указывает на то, что событие не является новым и происходило раньше.
Этот статус устанавливается с помощью метода dto.setNeworexist() с указанием «NEW» или «EXISTS» в качестве
```
package com.bofa.sst.batch.listener;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobExecutionListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.bofa.sst.batch.config.M2MDynamicConfigPropertiesRepository;
@Component
public class CollectionLettersCustomJobListener implements JobExecutionListener {
@Autowired
private M2MDynamicConfigPropertiesRepository dynamicConfigPropRepository;
@Override
public void beforeJob(JobExecution jobExecution) {
// Setting properties in the execution context
String sourceDir = dynamicConfigPropRepository.findPropertyValueByPropertyName("collectionletters.file.watcher.directory.path.source");
String destDir = dynamicConfigPropRepository.findPropertyValueByPropertyName("wExtract.output.flat.file.path");
jobExecution.getExecutionContext().putString("sourceDir", sourceDir);
jobExecution.getExecutionContext().putString("destDir", destDir);
}
@Override
public void afterJob(JobExecution jobExecution) {
if (jobExecution.getStatus() == BatchStatus.COMPLETED) {
jobExecution.setExitStatus(jobExecution.getExitStatus().addExitDescription("Job Launched Successfully.."));
} else {
jobExecution.setExitStatus(jobExecution.getExitStatus().addExitDescription(jobExecution.getFailureExceptions().toString()));
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78748668/how-to-write-this-row-mapper-in-better-way[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия