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


  • 相关阅读:
    Ubuntu vim java 自动补全javacomeplete2
    vim多行注释和取消注释 Ubuntu
    vim tab设置为4个空格
    liunx 命令行快捷键 常用命令
    win7 +v Ubuntu 16.04 grub rescue 模式下修复 grub
    Ubuntu16.04安装WPS
    liunx ubuntu java 环境的配置
    Vim简明教程【CoolShell】(转)
    ubuntu16.04安装chrome
    android全屏下的输入框未跟随软键盘弹起问题
  • 原文地址:https://www.cnblogs.com/yizw/p/7850310.html
Copyright © 2011-2022 走看看