1. 程式人生 > 實用技巧 >利用quartz在springmvc配置定時任務

利用quartz在springmvc配置定時任務

定時任務分為週期性執行(一小時執行一次,一分鐘執行一次)和某個時間點(幾點幾刻)執行

   <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.2</version>
        </dependency>

然後在spring-servlet.xml中找個地方加上

  xmlns:task="
http://www.springframework.org/schema/task"

http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd 

然後配置一下bean,隨便起個名字,比如叫做quartzTaskBean,然後配置任務時間表

任務時間表需要引用這個bean的id就是剛才配置的quartzTaskBean

定時任務按道理應該屬於service吧。。。所以在com.hs.service中建立一個服務,叫做QuartzTaskService,所有的定時任務都寫在這裡好了

何時執行用

cron="*/5 * * * * ?"配置,五個星星分別是 秒 分 時 日 月 ❓是周,後邊還可以繼續新增年這個東西自己算太麻煩了,網上有工具
cron計算工具
     <task:scheduled-tasks>
        <task:scheduled ref="quartzTaskBean" method="quartzJobTestMethod" cron="*/10 * * * * ?" />
    </task:scheduled-tasks>    
    <bean id="quartzTaskBean" class="com.hs.service.QuartzTaskService
"/>

然後在service這麼寫

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.hs.service;

import org.joda.time.DateTime;
import org.springframework.stereotype.Service;

/**
 *
 * @author wishr
 */
@Service
public class QuartzTaskService {

    public void quartzTest() {
        DateTime dt = new DateTime();
        System.out.println(dt.toString());
    }
}