国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

java.util下的Timer,TimerTask和quartz的比較

2019-11-18 15:27:55
字體:
供稿:網(wǎng)友

    java 中已經(jīng)有一個 timer 類可以用來進(jìn)行執(zhí)行計劃,定時任務(wù)。我們所要做的只是繼續(xù) java.util.TimerTask 類。如下所示:

    package com.yourcompany.scheduling;

    import java.util.Calendar;

    import java.util.Date;

    import java.util.Timer;

    import java.util.TimerTask;

    public class ReportGenerator extends TimerTask {

    public void run() {

    System.out.

    //TODO generate report

    }

    }

    class Mainapplication {

    public static void main(String[] args) {

    Timer timer new Timer();

    Calendar date = Calendar.getInstance();

    date.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);

    date.set(Calendar.HOUR, 0);

    date.set(Calendar.MINUTE, 0);

    date.set(Calendar.SECOND, 0);

    date.set(Calendar.MILLISECOND, 0);

    // Schedule to run every Sunday in midnight

    timer.schedule(new ReportGenerator(),  // TimerTask

    date.getTime(),          // Timer

    1000 * 60 * 60 * 24 * 7   // delay)

    };

    這里有幾個問題,我們的類繼續(xù)了TimerTask ,而timerTask 也是實現(xiàn)了 java.lang.Runnable 接口。我們所要做的只是在我們自己的類里重置 run() 方法。所以我們的TimerTask類其實是一種線程,但線程的調(diào)度往往不是按照我們希望來實現(xiàn)的,因為一些垃圾收集等原因,我們計劃的時間點,卻沒有執(zhí)行必要的任務(wù)。這樣會產(chǎn)生一些問題。雖然,Timer 類也提供了scheduleAtFixedRate() 方法用來在垃圾收集后能夠快速的追上任務(wù)進(jìn)度,但這個不一定是我們所需要的。非凡是在 一些 J2EE 服務(wù)器上 Timer 是無法控制的,因為它不在容器的權(quán)責(zé)范圍內(nèi)。另外的,這個任務(wù)調(diào)度也缺乏一些企業(yè)級所需要的 非凡 日期定制的功能,以及修改,查找任務(wù)的功能。

    這里我們要介紹的是一個開源項目:Quartz .

    Quartz 定義了兩種 基本接口 Job 和 Trigger . 看名字也就知道,我們的任務(wù)必須實現(xiàn) Job, 我們的時間觸發(fā)器定義在 Trigger 內(nèi)。 看一個例子也許能更快的了解他的使用方法:package com.yourcompany.scheduling;

    import org.quartz.*;

    public class QuartzReport implements Job {

    public void execute(JobExecutionContext cntxt) //必須實現(xiàn)的方法

    throws JobExecutionException {

    System.out.println("Generating report - " +

    cntxt.getJobDetail().getJobDataMap().get("type"));

    //TODO Generate report

    }

    public static void main(String[] args) {

    try {

    SchedulerFactory schedFact



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 桂东县| 定结县| 南京市| 长顺县| 广南县| 思茅市| 疏附县| 栾川县| 库尔勒市| 洛宁县| 福安市| 黔江区| 玛纳斯县| 高雄县| 宽甸| 原平市| 永昌县| 莲花县| 江津市| 讷河市| 和龙市| 宝坻区| 南乐县| 丰宁| 邮箱| 视频| 闽侯县| 营山县| 古浪县| 乌审旗| 萝北县| 阿克| 高台县| 大英县| 北碚区| 连城县| 蓬安县| 南乐县| 若尔盖县| 沙田区| 西盟|