1. 程式人生 > >JAVA Maven專案如何實現定時任務!

JAVA Maven專案如何實現定時任務!

<properties>
        <java.version>7</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <slf4j.version>1.7.5</slf4j.version>
        <spring.version>3.2.13.RELEASE</spring.version>
        <springframework.version
>3.0.5.RELEASE</springframework.version> </properties>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
   <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>${org.springframework-version}</version>
   <exclusions>
    <!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> </exclusion
>
<exclusion> <groupId>commons-digester</groupId> <artifactId>commons-digester</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${org.springframework-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${org.springframework-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework-version}</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.5</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework-version}</version> </dependency> <!-- AspectJ --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${org.aspectj-version}</version> </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

2.在自己的web.xml檔案中引入監聽器

<init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:/dispatcher-servlet.xml</param-value>
    </init-param>
  • 1
  • 2
  • 3
  • 4

3建立定時任務的操作函式

package com.anran.webdesign.utils;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ExpireJobTask {

    public void doBiz() throws IOException
    {   
        System.out.println("執行時間是:"+new Date());
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4.在監聽器指定的xml檔案中引入定時任務

<!-- 執行緒執行器配置,用於任務註冊 -->
    <bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="10" />
        <property name="maxPoolSize" value="100" />
        <property name="queueCapacity" value="500" />
    </bean>
    <!-- 業務物件 -->
    <!-- ExpireJobTask是類名,doBiz是執行的實際方法 -->
    <bean id="bizObject" class="com.anran.webdesign.utils.ExpireJobTask" />
    <!-- 排程業務 -->
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="bizObject" />
        <property name="targetMethod" value="doBiz" />
    </bean>

    !-- 定時時間,此處為30分鐘執行一次-->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobDetail" />
        <property name="cronExpression" value="0 0/30 * * * ?" />
    </bean> 
    <bean id="taskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
        <property name="jobDetail" ref="jobDetail" />
        <property name="startDelay" value="10000" />
        <property name="repeatInterval" value="60000" />
    </bean>

    <!-- 設定排程 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
        <list>
            <ref bean="cronTrigger" />
        </list>
        </property>
        <property name="taskExecutor" ref="executor" />
    </bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

附件:定時時間的格式(cronExpression表示式)

欄位 允許值 允許的特殊字元

秒 0-59 , – * /

分 0-59 , – * /

小時 0-23 , – * /

日期 1-31 , – * ? / L W C

月份 1-12 或者 JAN-DEC , – * /

星期 1-7 或者 SUN-SAT , – * ? / L C #

年(可選) 留空, 1970-2099 , – * /

表示式意義

"0 0 12 * * ?" 每天中午12點觸發

"0 15 10 ? * *" 每天上午10:15觸發

"0 15 10 * * ?" 每天上午10:15觸發

"0 15 10 * * ? *" 每天上午10:15觸發

"0 15 10 * * ? 2005" 2005年的每天上午10:15觸發

"0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發

"0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發

"0 0/5 14,18 * * ?" 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發

"0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:102:44觸發

"0 15 10 ? * MON-FRI" 週一至週五的上午10:15觸發

"0 15 10 15 * ?" 每月15日上午10:15觸發

"0 15 10 L * ?" 每月最後一日的上午10:15觸發

"0 15 10 ? * 6L" 每月的最後一個星期五上午10:15觸發

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最後一個星期五上午10:15觸發

"0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發

每天早上60 6 * * *

每兩個小時

0 */2 * * *

晚上11點到早上8點之間每兩個小時,早上八點

0 23-7/28 * * *

每個月的4號和每個禮拜的禮拜一到禮拜三的早上110 11 4 * 1-3

11日早上4
0 4 1 1 *

相關推薦

JAVA Maven專案如何實現定時任務

<properties> <java.version>7</java.version> <project.build.sourc

不用任何框架,Java 就能實現定時任務的 3 種方法

是的,不用任何框架,用我們樸素的 Java 程式語言就能實現定時任務。 今天,棧長就介紹 3 種實現方法,教你如何使用 JDK 實現定時任務! ## 1、 sleep 這也是我們最常用的 sleep 休眠大法,不只是當作休眠用,我們還可以利用它很輕鬆的能實現一個簡單的定時任務。 **實現邏輯:**

Java ssm專案設定定時任務,每天定點執行

1,首先在配置檔案中定義標籤對映class檔案: <bean id="WorkorderScanTask" class="com.tdmh.modules.workorder.utils.WorkorderScanTask" />        <task:

JAVA Maven專案如何實現定時任務

1在pom.xml檔案中加入如下資訊,引入對應的jar包。 <properties> <java.version>7</java.version> <project.build.so

Java web專案springMVC框架中實現定時任務

在工作中遇到一個需求,需要定時自動執行某項功能,這就需要用到定時任務了。首先先來理一下實現思路,定時任務可以用Java.util中的timer類,把需要定時執行的任務封裝到timer類的排程表中,這個timer物件需要在程式初始化時建立,這樣才可以讓它自動執行。那麼我們就可以想到需要借用

JAVA實現定時任務

col 時間 頻率 set 進行 con hour gettime test import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util

java實現定時任務 Schedule

exec use 關心 ted sun gets 只需要 默認 允許 1.java定時任務可以借助 java.util.Timer 來實現 [java] view plain copy import java.util.Calendar; import

Java定時任務:利用java Timer類實現定時執行任務的功能

lpad 虛擬 觀察 exce 就是 set ring 構造 trac 一、概述 在java中實現定時執行任務的功能,主要用到兩個類,Timer和TimerTask類。其中Timer是用來在一個後臺線程按指定的計劃來執行指定的任務。 TimerTask一個抽象類,它的子類代

Spring整合Quartz框架實現定時任務跑批(Maven完整版)

觸發器 delay cut www 方法 lin job 定時任務 任務調度 Quartz 介紹Quartz is a full-featured, open source job scheduling service that can be integrated with

java的三種實現定時任務的方法

/**   * 普通thread   * 這是最常見的,建立一個thread,然後讓它在while迴圈裡一直執行著,   * 通過sleep方法來達到定時任務的效果。這

java+Quartz實現定時任務

1、首先:匯入quartz相關的jar包,這裡我用的是maven構建的專案,pom.xml檔案匯入如下: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactI

java spring-quartz定時實現定時任務

Quartz是一個大名鼎鼎的Java版開源定時排程器,功能強悍,使用方便,下面我們看看如何使用它 一、核心概念 Quartz的原理不是很複雜,只要搞明白幾個概念,然後知道如何去啟動和關閉一個排程程式即可。 1、Job 表示一個工作,要執行的具體內容。此介面中只有一個方法 vo

Java Maven專案:spring boot + Mybatis連線MySQL,通用mapper的增刪改查,對映實現多表查詢

1. MySQL自帶庫test新增表user、role 角色表role 使用者表user 2. 新增依賴,配置屬性 相關依賴:百度即可,此處略 application.properties spring.application.name=clean-exe

javaweb專案啟動定時任務實現

javaweb專案中,有時需要專案啟動時開啟一個執行緒,定時完成任務。 一下即為該功能實現方式。 首先在web.xml中指定專案啟動時開始一個執行緒。 1. <servlet>           <servlet-name>MatchMyServlet</servlet-nam

使用使用maven專案實現Java安全框架Shiro的內建Realm:IniRealm進行登陸許可權驗證

1.我們先建一個maven專案,如圖: 2.在pom.xml中新增如下依賴: <dependencies> <dependency> <groupId>org.apache.shiro</groupId>

java實現定時任務的三種方法

/** * 普通thread * 這是最常見的,建立一個thread,然後讓它在while迴圈裡一直執行著, * 通過sleep方法來達到定時任務的效果。這樣可以快速簡單的實現,程式碼如下: * @author GT * */ public class Task

Java Web實現定時任務quartz方式

<servlet>     <servlet-name>QuartzInitializer</servlet-name>     <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet<

java實現定時任務的幾種常用方法

/** * 普通thread * 這是最常見的,建立一個thread,然後讓它在while迴圈裡一直執行著, * 通過sleep方法來達到定時任務的效果。這樣可以快速簡單的實現,程式碼如下: * @author TGY * */ public class Task

java實現定時任務(Quartz)

java中實現定時任務執行某一業務。具體操作如下: 1、定義初始化任務 2、任務業務操作 3、定義初始化方法 4、在web.xml中註冊啟動 5、定義具體執行時間 6、q

基於 abp vNext 和 .NET Core 開發部落格專案 - 整合Hangfire實現定時任務處理

上一篇文章(https://www.cnblogs.com/meowv/p/12956696.html)成功使用了Redis快取資料,大大提高部落格的響應效能。 接下來,將完成一個任務排程中心,關於定時任務有多種處理方式,如果你的需求比較簡單,比如就是單純的過多少時間迴圈執行某個操作,可以直接使用.net