天天看點

使用Spring Task輕松完成定時任務

一、背景 

  最近項目中需要使用到定時任務進行庫存占用釋放的需求,就總結了如何使用Spring Task進行簡單配置完成該需求,本文介紹Spring3.0以後自定義開發的定時任務工具,

spring task,我們可以将它比作一個輕量級的Quartz,使用簡單友善,除spring相關的包外不需要額外的包,而且支援注解和配置檔案兩種形式,下面我會分别介紹這兩種方式。

二、定時任務開發步驟

  開發環境

    Spring 4.2.6.RELEASE

    Maven 3.3.9

    Jdk 1.7

    Idea 15.04

  【1】.基于配置檔案

    1.編寫普通java class

    2.在spring配置檔案頭中添加命名空間及描述(下面加粗處)并配置定時任務

  【2】基于注解

    我們可以使用@Scheduled注解進行開發,首先我們看下,該注解的源碼

可以看出該注解有五個方法或者叫參數,分别表示的意思是:

cron:指定cron表達式

zone:官方文檔解釋:A time zone for which the cron expression will be resolved。指定cron表達式運作的時區

fixedDelay:官方文檔解釋:An interval-based trigger where the interval is measured from the completion time of the previous task. The time unit value is measured in milliseconds.即表示從上一個任務完成開始到下一個任務開始的間隔,機關是毫秒。

fixedRate:官方文檔解釋:An interval-based trigger where the interval is measured from the start time of the previous task. The time unit value is measured in milliseconds.即從上一個任務開始到下一個任務開始的間隔,機關是毫秒。

      1.編寫注解的定時任務類

    2.在spring配置檔案頭中添加命名空間及描述(下面加粗處)并開啟定時任務注解驅動

 以上我們就完成了基于注解的定時任務的開發,是不是很簡單?

運作結果:

  

使用Spring Task輕松完成定時任務

三、總結

  其實有些知識我們表面上看起來很難,但是當我們實際操作的時候,發現挺簡單的,隻要遇到問題我們勤思考多思考,就一定會有解決辦法。關于定時任務,還有一種基于Spring Quartz的實作,以後有需要,我們再進行介紹。歡迎留言交流.......