1. 程式人生 > >spring定時任務排程

spring定時任務排程

本文將告訴你如何使用spring的任務排程。主要使用@Scheduled註解

需要會使用maven

第一步 pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>4.0.0</modelVersion> <groupId>org.xxz</groupId> <artifactId>scheduled-task-test</artifactId> <version>1.0</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>
spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId
>
<artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

第二步 定時任務類(ScheduledTasks)

package org.xxz.task;

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

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Component
public class ScheduledTasks {

    @Scheduled(fixedRate = 5000)
    public void now() {
        log.info("The time is now {}", new Date());
    }
}

@Scheduled有三種類型引數fixedRate, fixedDelay, cron

fixedRate 表示每隔多少毫秒執行一次

fixedDelay 表示任務執行完成後隔多少毫秒執行一次

cron 定時任務表示式

第三步 啟動類(Application)

package org.xxz;

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

@SpringBootApplication
@EnableScheduling
public class Application {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class);
    }
}

第四步 打包執行

cd scheduled-task-test
mvn clean package
java -jar target/scheduled-task-test-1.0.jar

擴充套件知識:如果不想使用spring的任務排程,可以使用jdk自帶的任務排程類

ScheduledExecutorService#schedule

ScheduledExecutorService#scheduleAtFixedRate

ScheduledExecutorService#scheduleWithFixedDelay

今天的分享就到這裡了。謝謝閱讀。

相關推薦

spring定時任務排程quartz

1.maven依賴 <!-- 定時任務 --> <dependency> <groupId>quartz</groupId> <artifactId>quartz</artifactId> <v

spring定時任務排程

本文將告訴你如何使用spring的任務排程。主要使用@Scheduled註解 需要會使用maven 第一步 pom.xml配置 <?xml version="1.0" encoding="UTF-8"?> <proje

Spring定時任務排程【含cron引數詳解】

spring內部有一個task是Spring自帶的一個設定時間自動任務排程task使用的時候很方便,但是他能做的東西不如quartz那麼的多!可以使用註解和配置兩種方式,配置的方式如下引入Spring放在appcation.xml開頭<beans xmlns="http

Spring整合quartz定時任務排程的cronExpression配置說明(轉載)

Spring整合quartz定時任務排程 "* * * * * *" 欄位   允許值   允許的特殊字元 秒   

spring task 任務排程定時任務

0 0 10,14,16 * * ? 每天上午10點,下午2點,4點 0 0/30 9-17 * * ?   朝九晚五工作時間內每半小時 0 0 12 ? * WED 表示每個星期三中午12點  "0 0 12 * * ?" 每天中午12點觸發  "0 15 10 ? * *" 每天上午10:15觸發  "0

elastic-job替換掉原來的spring+quartz的定時任務排程

替換的原因: 我想用quartz實現定時任務叢集的時候,遇到過很坑的問題就是所有做叢集的機器都必須保證時間的一致性,要不然有很多機器的專案是起不來的;除此之外,使用quartz很容易造成資料庫死鎖的問題,雖然我已經降低了quartz的資料庫事務級別,但還是有這種情況發生,所

Spring quantz--定時任務排程工具

1.在xml中交給spring管理的一些類 <bean id="cancelOrderJobDetail" class="org.springframework.scheduling.quart

spring boot 整合quartz實現定時任務排程

1.pom檔案引入 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId&

spring boot 整合quartz 定時任務排程

新增依賴: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <ver

Spring和Quartz實現的定時任務排程

Corn表示式 一、增加所依賴的JAR包 1. 增加Spring的Maven依賴 <dependency>  <groupId>org.springframework</groupId>  

spring 實現動態定時任務排程

概述 使用spring框架實現動態定時任務排程,可以不重啟專案,只修改cron表示式,即可變更任務執行週期。 spring xml配置: <?xml version="1.0" encoding="UTF-8"?> <beans

Spring定時任務的幾種實現

job 將不 obb 簡單 信息 sim ger 觸發 一個 Spring定時任務的幾種實現: 近日項目開發中需要執行一些定時任務,比如需要在每天淩晨時候,分析一次前一天的日誌信息,借此機會整理了一下定時任務的幾種實現方式,由於項目采用spring框架,所以我都將結合 sp

Spring定時任務的幾種實現 (記錄備用)

官方 ini src def lns 開發 enc http poj http://gong1208.iteye.com/blog/1773177 Spring定時任務的幾種實現 近日項目開發中需要執行一些定時任務,比如需要在每天淩晨時候,分析一次前一天的日誌信息,借此

spring定時任務

strac 屬性 ase port tin aop init 都是 開發 轉自:http://gong1208.iteye.com/blog/1773177 近日項目開發中需要執行一些定時任務,比如需要在每天淩晨時候,分析一次前一天的日誌信息,借此機會整理了一下定時任務

spring定時任務執行兩次的原因與解決方法

ref net 任務 article 服務 每次 bsp tail 本地 spring定時任務,本地執行一次,放到服務器上後,每次執行時會執行兩次,原因及解決辦法。 http://blog.csdn.net/yaobengen/article/details/70312

Spring 定時任務之 @Scheduled cron表達式

按順序 cron sun ron cell last div text table 一個cron表達式有至少6個(也可能7個)有空格分隔的時間元素。 按順序依次為 秒(0~59) 分鐘(0~59) 小時(0~23) 天(月)(0~31,但是你需要考慮你月的天數) 月(0~

spring定時任務的註解實現方式

sched class 單線程 pool job 默認 clas 線程 ref STEP 1:在spring配置文件中添加相應配置,以支持定時任務的註解實現 (一)在xml裏加入task的命名空間 <!-- beans裏添加:--> xmlns:task=

spring 定時任務

表示 eth ask color ring family font bean pre <!-- 定時任務 --><task:annotation-driven/> <!-- 註入定時任務 --><bean id="TimerTask

Spring 定時任務Scheduled 開發詳細圖文

定時執行 本地 setting 工具類 location fir clean scan crontab Spring 定時任務Scheduled 開發 文章目錄 一、前言 1.1 定時任務 1.2 開發環境 1.3 技術實現 二、創建包含WEB.

Spring定時(任務)刷新-quartz

參數 j2se pri 實現 觸發 gmv 方法 其中 實例 Quartz是一個完全由java編寫的開源作業調度框架。他可以與J2EE、J2SE集成,用與處理定時任務、定時刷新的需求。此處使用為與Spring項目集成。 在SpringMVC項目中使用quartz: 1.在