java定時任務詳解
需求:定時傳送郵件,定時採集資訊,定時分析日誌。。等等需要按規律定時觸發的函式。
前提環境
Spring+Struts2開發框架
檔案結構如下:
handler的類就是定時任務將要觸發的類,而resources包中的4個配置檔案分別為:
app-handler.xml :
<?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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- 測試任務 --> <bean id="quarzTestHandler" class="你的包名路徑.TestHandler"> </bean> </beans>
程式碼解析:
beans中的頭部都是一樣的,直接拿去用就可以。真正需要新增的是bean中的內容,class的值就是定時任務的實現類。而id則是找到app-quarz.xml配置定時屬性的xml檔案。
app-quarz.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//Spring//DTD Bean//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="handlerChedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <!-- 測試定時 --> <ref local="quarzTest" /> </list> </property> </bean> <!-- 測試定時 --> <bean id="quarzTest" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="quarzTestHandlerDetail" /> </property> <property name="cronExpression"> <value>0/50 * * * * ?</value> </property> </bean> <bean id="quarzTestHandlerDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="quarzTestHandler" /> </property> <property name="targetMethod"> <value>handler</value> </property> </bean> </beans>
程式碼解析:
這個xml檔案中,配置定時的各種屬性,並指定handler類中的執行方法。
- local=”quarzTest” 找到–> id=”quarzTest”
quarzTest中name=”cronExpression” 的value值中進行定時配置配置方法再最後統一總結。 - bean=”quarzTestHandlerDetail” –> id=”quarzTestHandlerDetail”
quarzTestHandlerDetail的bean中指定找到app-handler.xml 中的對應bean=”quarzTestHandler”
name=”targetMethod” 指定handler類中的執行方法。
log4j.properties:
log4j.rootLogger=info, console, original
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{dd HH:mm:ss}] %p %c{1}.%M(%L) | %m%n
log4j.appender.original=org.apache.log4j.DailyRollingFileAppender
log4j.appender.original.File=/data/logs/info/info_task_war.log
log4j.appender.original.layout=org.apache.log4j.PatternLayout
log4j.appender.original.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %c{1}.%M(%L) [%p] %m%n
該檔案是配置檔案,指定定時引數的配置問題。
Handler的java類程式碼:
package com.cedarmg.info.handler;
import org.apache.log4j.Logger;
public class TestHandler {
@SuppressWarnings("unused")
private static Logger logger = Logger.getLogger(TestHandler.class);
private static int i=1;
public void handler() {
i++;
System.out.println(i+" 定時任務執行結束! ");
}
}
OK,以上就是再java中執行定時任務的配置檔案和程式碼。
相關推薦
java定時任務詳解
需求:定時傳送郵件,定時採集資訊,定時分析日誌。。等等需要按規律定時觸發的函式。 前提環境 Spring+Struts2開發框架 檔案結構如下: handler的類就是定時任務將要觸發的類,而resources包中的4個配置檔案分別為:
crontab定時任務詳解
文件 install 重新 init 設定 ntpdate 關閉 同步 星期 1、安裝crontab:yum install crontabs 說明:/sbin/service crond start //啟動服務/sbin/service crond stop //關閉
Linux 定時任務詳解
什麽 file 同名 實現 link 打印 環境 grep 導入 fileclear.sh tamcdir=${HOME}/ora/user_projects/domains/tamc cd ${tamcdir} echo rm -f `ls heapdump*.phd
crond定時任務詳解
ceo 開發 單用戶 init.d 管理 deny rest fin nta 首先來了解一下chkconfig這個命令: chkconfig命令檢查、設置系統的各種服務。這是Red Hat公司遵循GPL規則所開發的程序,它可查詢操作系統在每一個執行等級中會執行哪些系統服務,
springboot整合quartz定時器實現定時任務詳解
最近需要 做一個按照時間,定時初始化一些資訊的功能,研究了一下quartz,也簡單瞭解一下TimerTask,廢話不多說。 quartz和TimerTask的區別: timer是jdk自帶的(可想而知,肯定是不怎麼好用)。 Quartz可以通過cron表示式精確到特定時間執行,而T
linux crontab定時任務詳解
使用crontab你可以在指定的時間執行一個shell指令碼或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都執行 如何往 cron 中新增一個作業? # crontab –e0 5 * * * /root/bin/backup.sh 這將會在每天早上5點執行 /root/bin/bac
Linux中的Crontab定時任務詳解
crontab介紹 在日常的專案開發中,我們有時候會需要定時的執行一些人物,比如資料庫備份,或者你的專案中的某個指令碼需要定期定時的去執行等等。那麼這些需求都可以所使用linux中crontab定時任務來完成。 Crontab: 用於設定週期性被執行的指令 該命令
spring定時任務詳解(@Scheduled註解)
在springMVC裡使用spring的定時任務非常的簡單,如下: (一)在xml里加入task的名稱空間 xmlns:task="http://www.springframework.org/schema/task" http://www.spr
golang定時任務詳解
在程式中經常需要按照指定的週期(以毫秒計)來呼叫函式或計算表示式,也即實現定時任務,使用time包中Tick和Sleep可以輕鬆實現定時任務 使用Tick每隔100毫秒列印“Hello TigerwolfC” for range time.Tick(time.Millisecond*10
玩轉SpringBoot之定時任務詳解
pac multi mpi 例如 mark tor tro size har 序言 使用SpringBoot創建定時任務非常簡單,目前主要有以下三種創建方式: 一、基於註解(@Scheduled) 二、基於接口(SchedulingConfigurer) 前者相信
【Spring】定時任務詳解例項[email protected]
最近在做專案,時間比較緊張,也有比較久沒寫部落格了。 現在專案的Redis快取需要用到定時任務,就學習了一下Spring 的@Scheduled註解。使用起來很簡單。 這個例子是建立在之前我的一篇部落格的例項上面的。 也就是架好了SSM框架。 SSM
【系統學習SpringBoot】SpringBoot定時任務詳解
強大的SpringBoot對定時任務這種常用的功能做了很好的封裝,,只需三步即可完成 一、新增依賴 pom.xml檔案中新增如下依賴: <dependencies> <dependency> <
spring如何設定定時任務詳解(@Scheduled)
目錄 一:註解方式配置定時任務: 二:@Scheduled 三:原理簡介 四:其他 以前用過這個註解實現定時任務,但是隻是使用,現在做專案又用到了這個功能,系統的學習一下~ spring定
spring @scheduled 定時任務詳解
使用@scheduled定時任務有兩種方式,一種是直接@scheduled(cron=”0 0 0 ? * * “) 還有一種是使用xml配置 對於這兩種方式,首先需要在Spring配置檔案xmlns加入 xmlns:task="http://www.
linux下新增定時任務 詳解示例
linux下定時執行任務的方法 在Linux中你應該先輸入crontab -e,然後就會有個vi編輯介面,再輸入0 3 * * 1 /clearigame2內容到裡面 :wq 儲存退出。 在LINUX中,週期執行的任務一般由cron這個守護程序來處理[ps -ef|grep cron]。cron讀取一個或
PHP Yii 命令列程式以及定時任務詳解
為啥要編寫命令列程式? 命令列程式通常是一個指令碼,但是PHP Yii 是web開發語言,如何能開發指令碼程式? 所以,首先我們要明白使用PHP Yii 編寫指令碼語言的目的和原理。 目的 設想這麼一
SpringCloud之Eureka的定時任務詳解(Server)
1.EurekaServer內定時更新叢集內其他Server節點 public class PeerEurekaNodes { /** * Eureka-Server 叢集節點陣列 */ private volatil
Linux下Python腳本自啟動與定時任務詳解
文件 自啟 權限 crontab 自動運行 command 任務 bin www 這篇文章主要給大家介紹了關於Linux下Python腳本自啟動與定時任務的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值。前言 最近同事問了一
quartz定時任務詳解
------------------------開始 application-quartz.xml----------
詳解java定時任務
導致 println 正常 延遲執行 first 指定 線程終止 ont 打印 在我們編程過程中如果需要執行一些簡單的定時任務,無須做復雜的控制,我們可以考慮使用JDK中的Timer定時任務來實現。下面LZ就其原理、實例以及Timer缺陷三個方面來解析java Timer定