首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有no-arg方法可以使用@调度进行注释。

只有no-arg方法可以使用@调度进行注释。
EN

Stack Overflow用户
提问于 2021-12-25 11:46:24
回答 1查看 583关注 0票数 1
代码语言:javascript
复制
@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文件的方法。首先,我希望将它们分开,以便在一次保存一些文件,在另一时间保存其他文件。我尝试设置此方法以执行计划。

代码语言:javascript
复制
@Override
@Scheduled(cron = "10 10 * * * *")
public void run(ApplicationArguments args) throws Exception {
    providerController.saveCards();
}

但是,我得到了一个错误,因为在我拥有的方法(args)的参数中,没有这个方法就不能工作。如何设置Scheduler,以便按时调用我的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-25 15:58:14

run1()run2()run3()上,您不需要ApplicationArguments args,因为实际上唯一的方法重写了ApplicationRunner.run(ApplicationArguments args)方法,所以只需删除它们。此外,我将保持简单,只需分离方法(重写ApplicationRunner.run(ApplicationArguments args)方法和计划的方法):

代码语言:javascript
复制
@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");
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70479794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档