В настоящее время у меня проблема с вызовом задач в Spring Cloud Data Flow.
У меня есть приложение Spring Batch (содержащее одношаговое задание), зарегистрированное в SCDF, и определение задачи на основе этого приложения. Во время моего первого запуска этой задачи я использовал пару параметров / аргументов задания. По причине, которую я теперь знаю, все мои последующие запуски переопределяют свои параметры первым набором, который я использовал.
Я использую базу данных SCDF 1.4.0 + MSSQL, но то же самое происходит и с SCDF 1.3.2 + H2 или MSSQL.
BatchConfig.java
@Configuration
public class BatchConfig {
@Autowired
TaskletStep taskletStep;
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet(taskletStep)
.build();
}
@Bean
public Job job() throws Exception {
return jobBuilderFactory.get("job")
.incrementer(new RunIdIncrementer())
.start(step1())
.build();
}
}
TaskletStep.java:
@Configuration
@StepScope
public class TaskletStep implements Tasklet{
@Value("#{jobParameters['filePath']}")
private String filePath;
@Value("#{jobParameters['informante']}")
private String informante;
@Autowired
RemessaParser remessaParserService;
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
GICLogger.info("Recebido job com path: " + filePath + " para o informante "+ informante);
try{
Path remessa = Paths.get(filePath);
if(Files.exists(remessa)){
String idRemessa = remessaParserService.remessaReader(remessa, informante);
GICLogger.info("### TaskletStep:" + idRemessa + " é o ID da Remessa!");
return RepeatStatus.FINISHED;
}else{
GICLogger.error("Não foi possível encontrar a remessa em "+filePath);
}
}catch(Exception e){
e.printStackTrace();
}
return RepeatStatus.FINISHED;
}
}
Моя команда запуска:
dataflow> task launch negTask --arguments "filePath=/tmp/jars/remessa.txt informante=CaixaB --spring.cloud.task.closecontext_enable=false"
Журнал приложений:
2018-04-04 13:33:28 [main] INFO c.b.g.n.BatchNegativacaoApp - Запуск BatchNegativacaoApp за 13,938 секунды (JVM работает на 14,599)
2018-04-04 13:33:28 [main] INFO osbabJobLauncherCommandLineRunner - Запуск командной строки по умолчанию с: [filePath = / tmp / jars / Remessa.txt, informante = Caixa, --spring.cloud.task.closecontext_enable = false , --spring.cloud.task.executionid = 17]
2018-04-04 13:33:28 [main] INFO osbclsupport.SimpleJobLauncher - Задание: [SimpleJob: [name = job]] запущено со следующими параметрами: [{filePath = / home / enrico / PROJETOS / GIC / java /remessa.txt, -spring.cloud.task.executionid = 8, informante = Caixa, -spring.cloud.task.closecontext_enable = false, run.id = 12, time = 1522842134819}]
Вы хоть представляете, почему это происходит?
Спасибо за внимание и любой вклад!
С уважением, Энрико
@Configuration
наTaskletStep
. Просто используйте@Component
. Каков был результат предыдущего запуска (COMPLETE
илиFAILED
)? - person Michael Minella   schedule 04.04.2018