@Component
public class SaveProviderStartupRunner implements ApplicationRunner {
@Autowired
private ProviderController providerController;
@Autowired
private AttachmentEmail attachmentEmail;
String fileDate1 = new SimpleDateFormat("dd.MM.yyyy").format(new Date());
LocalDate today = LocalDate.now();
String fileDate = (today.minusDays(1)).format(DateTimeFormatter.ofPattern("dd MMM"));
String fileDate2 = (today.minusMonths(1)).format(DateTimeFormatter.ofPattern("MMM"));
@Override
public void run(ApplicationArguments args) throws Exception {
providerController.saveCards();
}
//@Override
@Scheduled(cron = "26 17 * * * *")
public void run1(ApplicationArguments args) throws Exception {
attachmentEmail.sendMail1("SomeEmail@gmail.com", "SomeEmail2@gmail.com", "List for " + fileDate, " ", "Report " + fileDate1 + ".xlsx");
attachmentEmail.sendMail2("SomeEmail@gmail.com", "SomeEmail3@gmail.com", "List for " + fileDate, " ", "Report1 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail3("SomeEmail@gmail.com", "SomeEmail4@gmail.com", "List for " + fileDate, " ", "Report2 " + fileDate1 + ".xlsx");
}
@Scheduled(cron = "27 17 * * * *")
public void run2(ApplicationArguments args) throws Exception {
attachmentEmail.sendMail4("SomeEmail@gmail.com", "SomeEmail5@gmail.com", "List for " + fileDate, " ", "Report3 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail5("SomeEmail@gmail.com", "SomeEmail6@gmail.com", "List for " + fileDate, " ", "Report4 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail6("SomeEmail@gmail.com", "SomeEmail7@gmail.com", "List for " + fileDate, " ", "Report5 " + fileDate1 + ".xlsx");
}
@Scheduled(cron = "28 17 * * * *")
public void run3(ApplicationArguments args) throws Exception {
attachmentEmail.sendMail7("SomeEmail@gmail.com", "SomeEmail8@gmail.com", "List for " + fileDate, " ", "Report6 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail8("SomeEmail@gmail.com", "SomeEmail9@gmail.com", "List for " + fileDate, " ", "Report7 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail9("SomeEmail@gmail.com", "SomeEmail10@gmail.com", "List for " + fileDate, " ", "Report8 " + fileDate1 + ".xlsx");
}
}我的项目有一个开始保存到.xlsx文件的方法。首先,我希望将它们分开,以便在一次保存一些文件,在另一时间保存其他文件。我尝试设置此方法以执行计划。
@Override
@Scheduled(cron = "10 10 * * * *")
public void run(ApplicationArguments args) throws Exception {
providerController.saveCards();
}但是,我得到了一个错误,因为在我拥有的方法(args)的参数中,没有这个方法就不能工作。如何设置Scheduler,以便按时调用我的方法?
发布于 2021-12-25 15:58:14
在run1()、run2()和run3()上,您不需要ApplicationArguments args,因为实际上唯一的方法重写了ApplicationRunner.run(ApplicationArguments args)方法,所以只需删除它们。此外,我将保持简单,只需分离方法(重写ApplicationRunner.run(ApplicationArguments args)方法和计划的方法):
@Component
public class SaveProviderStartupRunner implements ApplicationRunner {
@Autowired
private ProviderController providerController;
@Autowired
private AttachmentEmail attachmentEmail;
String fileDate1 = new SimpleDateFormat("dd.MM.yyyy").format(new Date());
LocalDate today = LocalDate.now();
String fileDate = (today.minusDays(1)).format(DateTimeFormatter.ofPattern("dd MMM"));
String fileDate2 = (today.minusMonths(1)).format(DateTimeFormatter.ofPattern("MMM"));
@Override
public void run(ApplicationArguments args) throws Exception {
providerController.saveCards();
}
@Scheduled(cron = "10 10 * * * *")
public void run() throws Exception {
providerController.saveCards();
}
@Scheduled(cron = "26 17 * * * *")
public void run1() throws Exception {
attachmentEmail.sendMail1("SomeEmail@gmail.com", "SomeEmail2@gmail.com", "List for " + fileDate, " ", "Report " + fileDate1 + ".xlsx");
attachmentEmail.sendMail2("SomeEmail@gmail.com", "SomeEmail3@gmail.com", "List for " + fileDate, " ", "Report1 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail3("SomeEmail@gmail.com", "SomeEmail4@gmail.com", "List for " + fileDate, " ", "Report2 " + fileDate1 + ".xlsx");
}
@Scheduled(cron = "27 17 * * * *")
public void run2() throws Exception {
attachmentEmail.sendMail4("SomeEmail@gmail.com", "SomeEmail5@gmail.com", "List for " + fileDate, " ", "Report3 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail5("SomeEmail@gmail.com", "SomeEmail6@gmail.com", "List for " + fileDate, " ", "Report4 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail6("SomeEmail@gmail.com", "SomeEmail7@gmail.com", "List for " + fileDate, " ", "Report5 " + fileDate1 + ".xlsx");
}
@Scheduled(cron = "28 17 * * * *")
public void run3() throws Exception {
attachmentEmail.sendMail7("SomeEmail@gmail.com", "SomeEmail8@gmail.com", "List for " + fileDate, " ", "Report6 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail8("SomeEmail@gmail.com", "SomeEmail9@gmail.com", "List for " + fileDate, " ", "Report7 " + fileDate1 + ".xlsx");
attachmentEmail.sendMail9("SomeEmail@gmail.com", "SomeEmail10@gmail.com", "List for " + fileDate, " ", "Report8 " + fileDate1 + ".xlsx");
}
}https://stackoverflow.com/questions/70479794
复制相似问题