程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java准時義務的完成方法

java准時義務的完成方法

編輯:關於JAVA

java准時義務的完成方法。本站提示廣大學習愛好者:(java准時義務的完成方法)文章只能為提供參考,不一定能成為您想要的結果。以下是java准時義務的完成方法正文


在開辟測試對象的運用後台,常常聽到同事說要做個准時義務把做日記處置,或許數據清算,包含做些龐雜的營業盤算邏輯,在選擇准時義務的時刻,怎樣可以或許疾速完成,而且選擇一種更合適本身的方法呢? 我這裡把准時義務的完成搜集整頓了一些辦法,願望可以幫到剛開端做准時義務的同窗,寫得纰謬的處所請斧正。
一  Java 根本的准時義務,總結辦法有三種:

1.1   創立一個thread,然後讓它在while輪回裡一向運轉著,經由過程sleep辦法來到達准時義務的後果;

1.2   用Timer和TimerTask與第一種辦法比擬有以下利益:

  • 當啟動和去撤消義務時可以掌握
  • 第一次履行義務時可以指定你想要的delay時光

1.3   用ScheduledExecutorService是從的java.util.concurrent裡,做為並發對象類被引進的,這是最幻想的准時義務完成方法,比擬於上兩個辦法,它有以下利益:

  • 比擬於Timer的單線程,它是經由過程線程池的方法來履行義務的
  • 可以很靈巧的去設定第一次履行義務delay時光
  • 供給了優越的商定,以便設定履行的時光距離

 

二  Spring 准時義務,總結方法也有三種:

2.1    ScheduledTimerTask:  Spring的ScheduledTimerTask界說了一個准時器義務的運轉周期,遺憾的是,你可以指定義務履行的頻度,但你沒法准確指定它什麼時候運轉,這就須要用到第二種Quartz停止義務調劑;

       創立一個營業義務,在Spring設置裝備擺設文件中聲明 ;
       在Spring 設置裝備擺設文件中,設置裝備擺設ScheduledTimerTask ,而且聯系關系上自界說的義務實例;
       啟動准時器,Spring的TimerFactoryBean擔任啟動准時義務

 

 2.2    應用 Quartz:
 起首照樣老模樣界說營業邏輯義務:

在Spring中聲明而且設置裝備擺設功課調劑的觸發方法

這裡 Quartz的功課觸發器有兩種,分離是
org.springframework.scheduling.quartz.SimpleTriggerBean
org.springframework.scheduling.quartz.CronTriggerBean

 第一種SimpleTriggerBean,只支撐依照必定頻度挪用義務,如每隔一段時光運轉一次。

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> 
  <property name="jobDetail" ref="myJob" /> 
  <property name="startDelay" value="0" /><!-- 調劑工場實例化後,經由0秒開端履行調劑 --> 
  <property name="repeatInterval" value="2000" /><!-- 每2秒調劑一次 --> 
</bean> 

第二種CronTriggerBean,支撐到指准時間運轉一次,如天天12:00運轉一次,如上設置裝備擺設;
設置裝備擺設調劑工場
org.springframework.scheduling.quartz.SchedulerFactoryBean,代碼如上;
啟動你的運用便可

 2.3   應用 Spring-Task
         Spring自帶的准時義務對象,spring task,可以將它比作一個輕量級的Quartz,並且應用起來很簡略,除spring相干的包外不須要額定的包,並且支撐注解和設置裝備擺設文件兩種:
         第一步:編寫義務類;TaskJob,method job1  --代碼省略
         第二步:在spring設置裝備擺設文件頭中添加定名空間及描寫

<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:task="http://www.springframework.org/schema/task"  
  xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"> 

        第三步:spring設置裝備擺設文件中設置詳細的義務

<task:scheduled-tasks>  
    <task:scheduled ref="taskJob" method="job1" cron="0 * * * * ?"/>  
</task:scheduled-tasks> 
<context:component-scan base-package="com.alibaba.mytask" /> 

解釋:ref參數指定的即義務類,method指定的即須要運轉的辦法,cron及cronExpression表達式,詳細寫法這裡不引見了,<context:component-scan base-package="com.alibaba.mytask" />spring掃描注解用的。

以上就是本文的全體內容,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved