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注解的作用,谢谢。


  • 相关阅读:
    【转】Exchange Server 的防火墙开放端口
    【转】AD常用端口
    centos6安装python3
    CMD下的netstat命令
    CMD定时倒数
    【转】netstat 的10个基本用法
    不联网如何PING通WIN主机和VMWARE(懵懂版,不含原理)
    【转载】Putty出现 Network error:Software caused connection abort
    MFC Unicode 字符集下格式转换
    MFC嵌套OpenCV窗口并显示图片
  • 原文地址:https://www.cnblogs.com/yizw/p/7850310.html
Copyright © 2011-2022 走看看