FabricantDistributeurBatchService.java
- package com.sintia.ffl.admin.optique.catalogue.batch.batchservice;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.batch.core.BatchStatus;
- import org.springframework.batch.core.Job;
- import org.springframework.batch.core.JobExecution;
- import org.springframework.batch.core.JobParameters;
- import org.springframework.batch.core.JobParametersBuilder;
- import org.springframework.batch.core.JobParametersInvalidException;
- import org.springframework.batch.core.launch.support.SimpleJobLauncher;
- import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException;
- import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException;
- import org.springframework.batch.core.repository.JobRepository;
- import org.springframework.batch.core.repository.JobRestartException;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.core.task.SimpleAsyncTaskExecutor;
- import org.springframework.core.task.TaskExecutor;
- import org.springframework.stereotype.Service;
- import java.util.Date;
- @Service
- @RequiredArgsConstructor
- @Slf4j
- public class FabricantDistributeurBatchService {
-
- private final Job importFabricantDistributeur;
-
- private final JobRepository jobRepository;
- private final TaskExecutor asyncExecutor;
-
- @Value("${fabricantdistributeur.filename}")
- private String makerProviderfileName;
-
- @Value("${local.resources.directory}")
- private String resourcesDirectory;
-
- private static final Logger LOGGER = LoggerFactory.getLogger(FabricantDistributeurBatchService.class);
-
- public BatchStatus importFabricantDistributeur() throws InterruptedException {
- LOGGER.info("Launching maker/provider creation job manually");
- Date scriptRunningDate = new Date();
- SimpleJobLauncher simpleJobLauncher = new SimpleJobLauncher();
- simpleJobLauncher.setTaskExecutor(asyncExecutor);
- simpleJobLauncher.setJobRepository(jobRepository);
-
- JobParameters jobParameters = new JobParametersBuilder()
- .addLong("time", System.currentTimeMillis())
- .addString("fileName", makerProviderfileName)
- // .addString("localDirectory", Paths.get(resourcesDirectory).toString())
- .addDate("scriptDate", scriptRunningDate)
- .toJobParameters();
-
- try {
- JobExecution status = simpleJobLauncher.run(importFabricantDistributeur, jobParameters);
- return status.getStatus();
- } catch (JobExecutionAlreadyRunningException | JobRestartException | JobInstanceAlreadyCompleteException
- | JobParametersInvalidException e) {
- LOGGER.error("Error executing job 'importFabricantDistributeur'", e); return BatchStatus.FAILED;
- } finally {
- LOGGER.info("Batch started");
- }
- }
-
- }