1. 程式人生 > >SpringTask之Cron 表示式的使用

SpringTask之Cron 表示式的使用

1.他有6個域和7個域兩種方式

 6: 秒 , 分 , 時, 天, 月 , 周 

 7:秒 , 分 , 時, 天, 月 , 周  , 年

每個域的符號意思

* : 全部的意思,比如如果是秒則為每秒, 分鐘為沒分鐘

/ : 表示一個間隔 num1/num2 表示 num1 開始 , 每num2 執行一次

- : 也是一段間隔 num1/num2 表示每num1到num2之間才執行

, : 表示在指定的時候指定 , 比如 num1,num2,num..., numN 

? : 表示不給值,只能在月和周域中使用,兩個域中如果與有一個指定了具體的值,則另一個必須使用? ,因為他們互相沖突

練習

  0(秒) 0(分) 2(時) 1(天) *(月) ?(周) * (年)  表示在每年每月第1天2點

 


在專案中使用

    1.1 加入依賴

<dependencies>

		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jms</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.28</version>
		</dependency>
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.11.0.GA</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>

1.2 配置檔案

開啟註解驅動

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:task="http://www.springframework.org/schema/task"
	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.2.xsd">

	<context:component-scan base-package="com.alibaba.task"/>
 
    <task:annotation-driven/>
    
</beans>

bean


@Component
public class SeckillTask {
	
	@Scheduled(cron="0-3 * * * * ?")
	public void refreshSeckilGoods(){
		System.out.println("執行了任務排程"+new Date());
	}
}

 

 

 

                                                                                                               end