springboot自帶了乙個微型的spring-quartz定時器scheduled,可以讓我們簡單的實現定時任務。
實現**如下:
package com.zt.web.rest.jobs;
import org.springframework.scheduling.annotation.enablescheduling;
import org.springframework.scheduling.annotation.scheduled;
import org.springframework.stereotype.component;
@component
@enablescheduling
//可以在啟動類上註解也可以在當前檔案
public
class
testjob
@scheduled(fixedrate = 1000 * 10)
public
void
runsecend()
@scheduled(fixeddelay=1000)
public
void
runthird()
}
沒了,沒錯,你沒看錯,這樣就已經實現了。炒雞簡單。
@enablescheduling 註解的作用是發現註解@scheduled的任務並後台執行。
@scheduled用於標註這個方法是乙個定時任務的方法
cron、fixedrate、fixeddelay三個是用來排程時間的這三種方式都是設定每隔十秒執行一次
fixedrate:表示scheduled隔多長時間呼叫一次,不管任務是否執行完
fixeddelay:表示該任務執行完後隔多長時間再呼叫
cron是以表示式的形式來表示時間,從其他博主上摘抄了幾個例子,相信看一下基本都沒問題了。
表示式 意義
「0 0 12 * * ?」 每天中午12點觸發
「0 15 10 ? * *」 每天上午10:15觸發
「0 15 10 * * ?」 每天上午10:15觸發
「0 15 10 * * ? *」 每天上午10:15觸發
「0 15 10 * * ? 2005」 2023年的每天上午10:15 觸發
「0 * 14 * * ?」 在每天下午2點到下午2:59期間的每1分鐘觸發
「0 0/5 14 * * ?」 在每天下午2點到下午2:55期間的每5分鐘觸發
「0 0/5 14,18 * * ?」 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發
「0 0-5 14 * * ?」 在每天下午2點到下午2:05期間的每1分鐘觸發
「0 10,44 14 ? 3 wed」 每年三月的星期三的下午2:10和2:44觸發
「0 15 10 ? * mon-fri」 周一至周五的上午10:15觸發
「0 15 10 15 * ?」 每月15日上午10:15觸發
「0 15 10 l * ?」 每月最後一日的上午10:15觸發
「0 15 10 ? * 6l」 每月的最後乙個星期五上午10:15觸發
「0 15 10 ? * 6l 2002-2005」 2023年至2023年的每月的最後乙個星期五上午10:15觸發
「0 15 10 ? * 6#3」 每月的第三個星期五上午10:15觸發
0 6 * * * 每天早上6點
0 /2 * * 每兩個小時
0 23-7/2,8 * * * 晚上11點到早上8點之間每兩個小時,早上八點
0 11 4 * 1-3 每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 4 1 1 * 1月1日早上4點
springboot 自帶定時任務
enablescheduling public class slf4j component public class task1 每 6 秒執行一次任務 slf4j component public class task2 scheduled fixedrate 6000 上一次開始執行時間點 6 ...
SpringBoot 定時任務
第一步 在啟動類中加入如下註解 enablescheduling public class public static void main string args 注意 enablescheduling必須加,否則無法開啟定時任務 第二步 建立定時任務 component public class ...
Spring boot定時任務
最近做專案,需要使用定時任務,半個小時去更新redis資料,於是便學習了一下經驗。希望可以幫到你們。定時任務可使用三種 created by fx on 2017 9 4.component allargsconstructor public class featuredatatask 實現乙個任務...