Quartz排程實踐

2021-06-18 07:48:31 字數 2400 閱讀 6642

首先宣告乙個類繼承job介面,將來quartz會排程這個類的execute

public class updateconfigurationtask implements job

clientmanager.updateconfig();

}catch(exception ex)

}}

定義jobdetail,用以設定job的各種屬性

jobdetail jobdetail = new jobdetail("updateconfigurationtask","jgroup1", updateconfigurationtask.class);
定義乙個trigger

******trigger ******trigger = new ******trigger("configurationcentertrigger","group1");

設定trigger的屬性,主要是執行週期,時間,間隔等

******trigger.setstarttime(new date());

******trigger.setrepeatinterval(150000);

******trigger.setrepeatcount(org.quartz.******trigger.repeat_indefinitely);

從schedule***ctory獲取乙個scheduler物件

schedule***ctory schedule***ctory = new stdschedule***ctory();

scheduler scheduler = schedule***ctory.getscheduler();

使用定義的trigger排程定義的jobdetail

scheduler.schedulejob(jobdetail, ******trigger);

scheduler.start();

首先依然是乙個作業類,不過不需要繼承job介面了

接下是定義jobdetail,methodinvokingjobdetailfactorybean起到工廠類的作用,生成jobdetail物件並制定需要呼叫的類及類的方法

定義cronrigger,crontriggerbean其實是繼承了crontrigger

從schedule***ctory獲取scheduler物件並排程定義的trigger

我稱之為quartz api,它是乙個servlet,起到api的作用,接受外部請求,展示並控制當前quartz排程的任務

首先獲取spring注入生成的schedule

獲取當前排程的quartz資訊

string  triggergns = scheduler.gettriggergroupnames();

for (int i = 0; i < triggergns.length; i++)

map.put("jobname", trigger.getjobname());

map.put("jobgroup", trigger.getjobgroup());

map.put("last_time", df.format(econvert.todate(trigger.getpreviousfiretime())));

map.put("next_time", df.format(econvert.todate(trigger.getnextfiretime())));

int status = scheduler.gettriggerstate(trigger.getname(), trigger.getgroup());

map.put("status",gettriggerstatusname(status));

list.add(map);

} }

暫停/恢復job

pause

scheduler.pausejob(jobname, jobgroup);

resume

scheduler.resumejob(jobname, jobgroup);

執行一次作業

scheduler.triggerjob(jobname, jobgroup);

Quartz作業排程實踐

quartz的使用場景 例如 每5秒對某個平台傳輸資料 quartz框架的一些基礎概念解釋 scheduler 作業排程器。ijob 作業介面,繼承並實現execute,編寫執行的具體作業邏輯。jobbuilder 根據設定,生成乙個詳細作業資訊 jobdetail triggerbuilder 根...

Quartz事物排程

舉例說明 比如我們需要在每個星期四下午三點時候發週報,我們需要乙個系統在兩點半的時候給我們乙個發週報的提醒,這個提醒就是一次任務,每週星期四下午兩點半的時候自動觸發這個任務,這就可以理解為這個系統的一次任務排程。在比如我們的系統心跳資料報的傳送,判斷乙個使用者是否在操作等等。quartz 提供給我們...

任務排程 Quartz

首先,quartz是什麼 先看看我們生活中的例子 每月的2月21號提醒我今天是男朋友的生日 每月的17號提醒我大姨媽快要來了 每隔一小時提醒我起來走走運動運動 就是在某乙個有規律的時間點乾某件事。並且時間的觸發的條件可以非常複雜 比如每月最後乙個工作日的17 50 複雜到需要乙個專門的框架來幹這個事...