Agendando envio de email com Quartz
Dependência Quartz
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>Queremos que a execução do nosso Job seja agendada, e usaremos o Quartz juntamente com o Spring Batch, configurando a periodicidade do envio de emails.
Como o JobLauncher é responsável pela execução do nosso Job, criaremos um JobLauncher no pacote job. A classe irá se chamar SendBookLoanNotificationScheduleJob. Utilize o código abaixo:
@Configuration
public class SendBookLoanNotificationScheduleJob extends QuartzJobBean {
@Autowired
private Job job;
@Autowired
private JobExplorer jobExplorer;
@Autowired
private JobLauncher jobLaucher;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
JobParameters jobParameters = new JobParametersBuilder(this.jobExplorer).getNextJobParameters(this.job).toJobParameters();
try {
this.jobLaucher.run(this.job, jobParameters);
} catch (Exception e) {
e.printStackTrace();
}
}
}Atualizado