spring task使用說明

由於項目須要作定時任務操做,之前接觸的知識java的timer task,感受不是很爽,今天發現這個spring自帶的task任務比較爽,就學習了一下,java

首先須要spring3以上的版本,支持註解和配置兩種形式,我就說一下配置的形式:spring

1.在spring的配置文件中增長紅色的部分api

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd">spring-mvc

2.註解掃描包<context:component-scan base-package="com.lenovo.task" />  服務器

3.配置任務mvc

<task:scheduled-tasks>
<!-- <task:scheduled ref="taskJob" method="getAccessTokenJob" cron="0 27 23/2 * * ?"/> -->
<task:scheduled ref="taskJob" method="getAccessTokenJob" fixed-rate="#{1000*60*60*2}"/>
</task:scheduled-tasks>app

這裏注意支持三種屬性cron,fixed-rate,和fixed-delay學習

3.1.cron表達式形式spa

cron表達式我就不說了,你本身百度吧一大堆,可是就是注意這種方式任務執行是有固定的時間點的,好比我上邊的表達式就是23點27分執行,以後每隔2小時執行一次,不是重啓服務器,任務就當即執行。還要注意月,和星期,必須有一個是問號?component

3.2fixed-rate和fixed-delay這兩個是每隔多長時間執行一次,單位是毫秒。他倆之間的區別我也不知道。有知道的說一下

4.java類以下

package com.lenovo.task;

import java.util.Date;

import org.springframework.stereotype.Service;

import com.lenovo.util.Constants;
import com.lenovo.util.WxPayHelper;

@Servicepublic class TaskJob{ public void getAccessTokenJob(){ WxPayHelper wxPayHelper = new WxPayHelper(); wxPayHelper.SetAppId(Constants.appId); wxPayHelper.setAppSecret(Constants.secret); wxPayHelper.setURL(Constants.accessUrl); System.out.println(Constants.accesstoken+"-----"); System.out.println(Constants.jsapi_ticket+"nidaye"); System.out.println(new Date()); try{ Constants.accesstoken = wxPayHelper.getAccessToken(); Constants.jsapi_ticket=wxPayHelper.getJsToken(Constants.accesstoken); }catch(Exception e){ e.printStackTrace(); } } }

相關文章
相關標籤/搜索