AdditionalSkillBatchScheduler.java

package fr.avenirsesr.portfolio.additionalskill.infrastructure.batch;

import lombok.extern.slf4j.Slf4j;
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Slf4j
@Component
@Profile("!test")
public class AdditionalSkillBatchScheduler {
  private final JobLauncher jobLauncher;
  private final Job importROME4CompetenceJob;

  public AdditionalSkillBatchScheduler(JobLauncher jobLauncher, Job importROME4CompetenceJob) {
    this.jobLauncher = jobLauncher;
    this.importROME4CompetenceJob = importROME4CompetenceJob;
  }

  @Scheduled(cron = "${additional.skill.batch.cron}")
  public void runJob() {
    try {
      JobParameters jobParameters =
          new JobParametersBuilder().addLong("time", System.currentTimeMillis()).toJobParameters();
      jobLauncher.run(importROME4CompetenceJob, jobParameters);
      log.info("The ROME 4.0 skills import job has been successfully launched !");
    } catch (Exception e) {
      log.error("Error when launching the ROME 4.0 skills import job : {}", e.getMessage());
    }
  }
}