美文网首页
扩展Spring Boot Web应用 - 实现简单的定时任务功

扩展Spring Boot Web应用 - 实现简单的定时任务功

作者: nzdxwl | 来源:发表于2019-11-30 22:48 被阅读0次

    如果我们需要定时处理一些数据或者执行某个功能,但只是简单的定时任务时,我们可以使用Spring框架自己的定时调度器而不需要添加Quartz。

    首先在启动类上面添加以下注解:
    @Import(SchedulingConfiguration.class)
    告诉应用程序我们要使用定时任务。

    然后在启动类添加以下代码:

    @Bean
    public SchedulingConfigurer simpleTask() {
        return (taskRegistrar) -> taskRegistrar.addTriggerTask(
            () -> System.out.println("Simple Schedule Task:: " 
                + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))), 
            (triggerContext) -> { 
                return new CronSequenceGenerator("*/20 * * * * ?").next(new Date()); }
        );
    }
    

    这里创建一个SchedulingConfigurer的实现类,并在里面调用ScheduledTaskRegistrar的addTriggerTask方法,该方法两个参数一个是Runnable对象一个是Trigger对象,Runnable对象对应我们的定时业务逻辑,Trigger对象则是对应我们设置的定时表达式的定时触发器。以上实例是使用lambda表达式方式创建实现类,相对简洁,也可以自己定义实现类或使用内部类、匿名类实现。

    完成后在命令行下执行以下命令启动:mvn clean compile spring-boot:run,正常启动完会在后台打印类似下面信息:

    Simple Schedule Task:: 2019-11-30 22:41:40
    Simple Schedule Task:: 2019-11-30 22:42:00
    Simple Schedule Task:: 2019-11-30 22:42:20
    ...
    

    这样一个简单的定时任务功能就实现了。

    相关文章

      网友评论

          本文标题:扩展Spring Boot Web应用 - 实现简单的定时任务功

          本文链接:https://www.haomeiwen.com/subject/iwsjwctx.html