zoukankan      html  css  js  c++  java
  • spring-boot通过@Scheduled配置定时任务

    串行的定时任务

    @Component
    public class ScheduledTimer {

    private Logger logger = Logger.getLogger(this.getClass());

    /**
    * 定时任务,1分钟执行1次,更新潜在客户超时客户共享状态
    */
    @Scheduled(cron="0 0/1 8-20 * * ?")
    public void executeUpdateCuTask() {
    Thread current = Thread.currentThread();
    logger.info(" 定时任务1:"+current.getId()+ ",name:"+current.getName());
    }

    @Scheduled(cron="0 0/1 8-20 * * ?")
    public void executeGetRepayTask() {
    Thread current = Thread.currentThread();
    logger.info(" 定时任务2:"+current.getId()+ ",name:"+current.getName());
    }


    }

    并行的定时任务需要添加配置文件

    因为spring-boot的目的就是干掉配置文件,我在网上看到的很多都是通过配置文件来实现的,这里通过代码配置实现:

    @Configuration
    public class ScheduleConfig implements SchedulingConfigurer{

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar){
    TaskScheduler taskScheduler = taskScheduler();
    taskRegistrar.setTaskScheduler(taskScheduler);
    }

    @Bean(destroyMethod = "shutdown")
    public ThreadPoolTaskScheduler taskScheduler() {
    ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
    scheduler.setPoolSize(20);
    scheduler.setThreadNamePrefix("task-");
    scheduler.setAwaitTerminationSeconds(60);
    scheduler.setWaitForTasksToCompleteOnShutdown(true);
    return scheduler;
    }
    }


    网上教程说的需要在启动类上加上@EnableScheduling注解来发现注解@Scheduled的任务并后台执行。
    可能我没有通过启动类是通过外部tomcat启动的项目,所以没有加这个注解也能实现定时任务。
    路过的大侠如果有知道的,多多指教@EnableScheduling注解的作用,谢谢。


  • 相关阅读:
    codeforces242E XOR on Segment
    HDU3037 Saving Beans
    BZOJ1951 [Sdoi2010]古代猪文
    BZOJ3563 DZY Loves Chinese
    HDU1573 X问题
    POJ2891 Strange Way to Express Integers
    BZOJ2152 聪聪可可
    codeforces291E Tree-String Problem
    codeforces741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
    codeforces246E Blood Cousins Return
  • 原文地址:https://www.cnblogs.com/yizw/p/7850310.html
Copyright © 2011-2022 走看看