资讯专栏INFORMATION COLUMN

SpringBoot 1024行代码 - 定时任务

fou7 / 1732人阅读

摘要:前言用组件实现简易的定时任务功能。步骤创建一个启动类注意,是关键,加了这个注解才能启动定时任务。编写定时任务方法可以实现两种定时,一种是每个一段时间执行一次方法,另一种是执行一次方法之后间隔若干时间后再执行下一次。

前言

用Spring-Context组件实现简易的定时任务功能。只可以支持较简单的业务场景,实用价值不高。如果想要投放到生产环境,需要进行一些改造。

步骤 1. pom.xml
    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.8.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-web
                
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
2. 创建一个启动类
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

注意,@EnableScheduling是关键,加了这个注解才能启动定时任务。

3. 编写定时任务方法

可以实现两种定时,一种是每个一段时间执行一次方法(fixedRated),另一种是执行一次方法之后间隔若干时间后再执行下一次(fixedDelay)。

@Component
public class DemoTasks {

    @Scheduled(fixedRate = 5000)
    public void doSomethingEvery5Seconds() {
        System.out.println("fixedRate 5sec task executed");
    }

    @Scheduled(fixedDelay = 3000)
    public void doSomethingAndSleep2Seconds() {
        System.out.println("fixedDelay 2sec task start");
        try {
            Thread.sleep(4000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("fixedDelay 2sec task end");
    }

}
完整源码

https://github.com/gzllol/spr...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70681.html

相关文章

  • swoft中Crontab定时器的坑

    摘要:我们项目使用的是框架,所以我就想到用框架的定时器。,以及的结构注在定时器这块使用到两个一个是用于存储任务的实例。 这两天老大给了个需求想把商城热点数据同步到redis缓存。我们项目使用的是swoft框架,所以我就想到用框架的Crontab定时器。但是在测试的时候发现把Table的size设置为1024时(实际上设置为任何大小都一样,贴上swoole的解释)发现内存溢出了 showImg...

    CarterLi 评论0 收藏0
  • 使用Arthas 获取Spring ApplicationContext还原问题现场

    摘要:背景最近来了个实习僧小弟,安排他实现对目标网站连通性检测的小功能简单讲就是将下边的脚本换成代码来实现百度平台状态不正常,请注意功能实现使用开始执行定时任务,检测百度网站连通性请求百度成功,返回报文请求异常百度执行检测百度网站连通 背景 最近来了个实习僧小弟,安排他实现对目标网站 连通性检测的小功能,简单讲就是将下边的shell 脚本换成Java 代码来实现 1#!/bin/bash ...

    Amos 评论0 收藏0
  • Springboot定时任务踩坑记录

    摘要:前言在使用整合定时任务,发现当某个定时任务执行出现执行时间过长的情况时会阻塞其他定时任务的执行。问题定位后续通过翻查的文档以及打印日志输出当前线程信息得知问题是由于默认使用只要个线程处理定时任务。问题复盘需要注意示例的版本为。 前言 在使用Springboot整合定时任务,发现当某个定时任务执行出现执行时间过长的情况时会阻塞其他定时任务的执行。 问题定位 后续通过翻查Springboo...

    liujs 评论0 收藏0
  • SpringBoot下使用定时任务的方式全揭秘

    摘要:定时任务间隔时间方式执行一次定时任务线程休眠规定时间类类允许调度一个任务。引入依赖配置测试执行一次定时任务使用注解是为定时任务而生的一个注解,查看注解的源码表达式接收一个。 本文旨在用通俗的语言讲述枯燥的知识 定时任务作为一种系统调度工具,在一些需要有定时作业的系统中应用广泛,如每逢某个时间点统计数据、在将来某个时刻执行某些动作...定时任务在主流开发语言均提供相应的API供开发者调用...

    DevTTL 评论0 收藏0
  • SpringBoot中并发定时任务的实现、动态定时任务的实现(看这一篇就够了)

    摘要:也是自带的一个基于线程池设计的定时任务类。其每个调度任务都会分配到线程池中的一个线程执行,所以其任务是并发执行的,互不影响。 原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10659045.html,否则将追究法律责任!!! 一、在JAVA开发领域,目前可以通过以下几种方式进行定时任务 1、单机部署模式 Timer:jdk中...

    BWrong 评论0 收藏0

发表评论

0条评论

fou7

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<