springboot(十)定时任务

1、在demoApplication里添加@EnableScheduling,开启定时任务


package com.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
@ServletComponentScan
@EnableScheduling
public class DemoApplication extends SpringBootServletInitializer{
	@RequestMapping("/")
	public String home(){
		return "hello world";
	}

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

2、写定时任务

package com.demo.service;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.time.LocalTime;

/**
 * Created by huguoju on 2016/12/30.
 */
@Component
public class ScheduledTasks {
    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime() {
        System.out.println("The time is now " + LocalTime.now());
    }
}

5秒执行一次。


说明

//定义一个按时间执行的定时任务,在每天16:00执行一次。
@Scheduled(cron = "0 0 16 * * ?")
//定义一个按一定频率执行的定时任务,每隔1分钟执行一次
    @Scheduled(fixedRate = 1000 * 60)
//定义一个按一定频率执行的定时任务,每隔1分钟执行一次,延迟1秒执行
    @Scheduled(fixedRate = 1000 * 60,initialDelay = 1000)
// 每天早八点到晚八点,间隔2分钟执行任务@Scheduled(cron="0 0/2 8-20 * * ?") 
// 每天早八点到晚八点,间隔3分钟执行任务@Scheduled(cron="0 0/3 8-20 * * ?") 
// 每天早八点到晚八点,间隔1分钟执行任务@Scheduled(cron="0 0/1 8-20 * * ?")



cron表达式中各时间元素使用空格进行分割,分别表示如下含义:
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7.年份(1970-2099)







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot中注册定时任务有多种方式。一种方式是通过使用注解的方式来定义定时任务。首先,在主启动类上添加@EnableScheduling注解,开启定时任务的功能。然后在需要执行定时任务的方法上使用@Scheduled注解,设定任务执行的频度,例如cron表达式。这样,在指定的时间点,该方法就会被自动执行。可以参考如下代码示例: ```java @Component public class MyTask { // 每月每日每小时每分钟每20秒执行一次 @Scheduled(cron = "0/20 * * * * ?") public void testMyTask(){ System.out.println("SpringBoot Task 定时任务执行了..."); } } ``` 另一种方式是通过配置文件来注册定时任务。在application.yml或application.properties中添加相关配置来设置任务调度器的属性,包括核心线程数、线程名称前缀等。具体的配置示例可以参考。 总结来说,通过注解或配置文件的方式,都可以在SpringBoot中注册定时任务。具体选择哪种方式取决于项目的需求和个人喜好。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot 整合定时任务 Quartz、SpringBoot 内置定时任务 Task 代码详解](https://blog.csdn.net/qq_38132105/article/details/126198913)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SpringBoot:使用自定义cron表达式注册定时任务](https://blog.csdn.net/2301_76607156/article/details/130315606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [springboot写的定时邮箱提醒系统](https://download.csdn.net/download/DCABQ/88017152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值