1. 程式人生 > >quartz 暫停後重新啟動,在暫停時 被暫停後的任務,在啟動後會補償執行即 會連續多次呼叫job中的execute方法。

quartz 暫停後重新啟動,在暫停時 被暫停後的任務,在啟動後會補償執行即 會連續多次呼叫job中的execute方法。

public String add() throws IOException, SchedulerException {// 一定要緊跟Validate之後寫驗證結果類
String seconds = job.getCronExpression();
//String cronExp = "0/" + seconds + " * * * * ?";
String cronExp = seconds;
job.setCronExpression(cronExp);
Scheduler scheduler = schedulerFactoryBean.getScheduler();
TriggerKey triggerKey = TriggerKey.triggerKey(job.getJobName(), job.getJobGroup());


// 獲取trigger,即在spring配置檔案中定義的 bean id="myTrigger"
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);


// 不存在,建立一個
if (null == trigger) {
JobDetail jobDetail = JobBuilder.newJob(QuartzJobFactory.class)
.withIdentity(job.getJobName(), job.getJobGroup()).build();
jobDetail.getJobDataMap().put("scheduleJob", job);


// 表示式排程構建器
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression());


// 按新的cronExpression表示式構建一個新的trigger
trigger = TriggerBuilder.newTrigger().withIdentity(job.getJobName(), job.getJobGroup())
.withSchedule(scheduleBuilder.withMisfireHandlingInstructionDoNothing()).build();
System.out.println("trigger.getMisfireInstruction() = "+trigger.getMisfireInstruction());
scheduler.scheduleJob(jobDetail, trigger);
} else {
// Trigger已存在,那麼更新相應的定時設定
// 表示式排程構建器
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(job.getCronExpression());


// 按新的cronExpression表示式重新構建trigger
trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder.withMisfireHandlingInstructionDoNothing()).build();
System.out.println("trigger.getMisfireInstruction() = "+trigger.getMisfireInstruction());
// 按新的trigger重新設定job執行
scheduler.rescheduleJob(triggerKey, trigger);
}


return SUCCESS;
}

相關推薦

quartz 暫停重新啟動暫停 暫停任務啟動補償執行 連續呼叫jobexecute方法

public String add() throws IOException, SchedulerException {// 一定要緊跟Validate之後寫驗證結果類String seconds = job.getCronExpression();//String cronExp = "0/" + sec

MIS的趨勢必定是圍繞機器取代人手分工越來越細(小餐廳都支持微信自助點餐結賬就打個折相當於省了1、2個人手SQL發明以後程序員的工作更了)

nbsp 我認 公司 點餐 管理系 特定 組裝 bsp 適合 最後,我還想簡略的談談MIS及MIS快速開發工具的未來。MIS的趨勢必定是圍繞機器取代人手,分工越來越細。比如:現在有些小型的咖啡廳裏的財務子系統就簡單到不需要使用者有會計知識,相當於省了會計人手;有些小餐廳都支

#企業危機程式設計師跳槽面試HR問了一句話頓時就尷尬了

現在很多人想去做程式設計師,因為薪水相高於其它一般行業,另外市場需求也大,優秀的程式設計師是企業一直所需要的人才,供求不匹配導致程式設計師總有更好的選擇,錢多事少離家近的工作人人都愛,近日就有一程式設計師晒出了自己的面試經歷:自己現在的公司發展前景不好,自己打算跳槽,結果面試的時候被HR一句

亡羊補牢面試如果發現回答不好該怎麼辦?

    大家在面試時,哪怕準備再充分,也不都可能一帆風順。請記住:面試回答不好是很正常的,尤其在你剛開始面試的時候。     所以你一定要有良好的心態:面試成了最好,不成的話面試官是免費給你一次鍛鍊的機會,而且免費告訴了你一些面試題,你也是賺的。但如果你一方

【記坑】Iterator遍歷時呼叫next()遍歷需要從Collection重新獲取迭代器

【記坑】Iterator遍歷時,多次呼叫next(),二次遍歷需要從Collection重新獲取迭代器 2018年02月10日 11:02:46 閱讀數:681 業務需求,從一份excel表中取到X軸(專案)和Y軸(平臺)的資料,和資料庫中的資料進行比較,如果匹配不上,則把所有匹配不上的

防止使用者連續擊鍵呼叫ajax防抖的封裝

在文字框中常常有這樣的需求,鍵入值時,實時呼叫相應的介面,但是每次觸發keydown都觸發,會嚴重消耗網頁的效能 基於此,可以進行封裝,設定鍵入值得間隔在一秒之內只調用一次,程式碼如下 呼叫如下 $("input").on("keydown",debounce(fu

程式設計師:同事培訓出身包裝BAT經驗聊天說漏嘴了要舉報他嗎

我們都知道程式設計師在目前網際網路時代屬於高薪職業,現在社會上每天都會有一大批人進入到這個行業,但是網際網路行業的崗位是有限的,像一些大企業或者體制內的企業找人也都有學歷限制,所以很多程式設計師雖說有技術,但是卻連一次面試的機會都沒有,又是是一些體制內的企業這個學歷限制更像是一道天塹,死死地卡住了一

一個介面有個實現類呼叫介面方法如何判定用的是哪個實現類

一、簡單例子: 1. 直接new一個例項,這樣肯定知道用的哪個例項2. 定義介面型別的變數,用某個例項去初始化。。。這樣也是肯定知道用的哪個例項一般我們用第二種方式有一個好處,如果以後要改動,那麼只需要修改其引用的例項,改動較少!舉個例子:A介面,A1,A2,A3實現A

在select載入預設select為空白選項內不顯示空白項

今天做select的時候,頁面要求為:載入預設選項框為空白,點選下拉框顯示正常選項。 找了半天  有兩種辦法,一種純css實現,一種藉助js實現。先說js的辦法吧。html:<body onloa

number——input新屬性提交自動檢測數字格式大小

提交時自動檢測數字格式,大小;可編輯手動輸入,也可以點選上下鍵調節大小<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></t

只能上內部不能上外網打不開網頁能登QQ

只能上內部,不能上外網,打不開網頁,有時能登QQ,今天在某管理處就遇到這種問題,現象如下: 能獲得地址,正常的外網公網IP地址,能開啟校園網就是打不開校外的網頁可以ping通閘道器,ping 不通百

support等三方包引用引用找不到類解決辦法

 問題: 原因: 引用多個三方庫.在呼叫的時候會出現版本對應不上的原因.就會出現如標題的異常.解決的辦法就是在你的build.gradle裡面加入如下程式碼塊: configurations.all

使用php寫出一個驗證碼圖片由於寬度定死了所以操作起來不太方便之後盡量寫靈活成為一個可調用的函數

新手 put 由於 -type draw cat 驗證 font 寬度 <?php // Due to the height and width of the captcha image is fixed, not so easy to use, change

從一組集合獲取取集合的每段數據的最大值重組成一個新的集合

clas pub 處理 oat private color andro sublist roi 一個項目中偶遇的簡單算法,個人覺得還不錯,雖不常用,也記錄在此吧。 1 package huolongluo.qihuo.util; 2 3 import androi

Fragment呼叫Activity方法很簡單 Fragment呼叫Activity方法很簡單

Fragment呼叫Activity中的方法,很簡單 2016年02月25日 10:12:10 閱讀數:1497 假如 父Activity的類名叫 ParentActivity,有一個test()方法 在Fragm

程式設計:從前有一個傻呆程式設計師老婆交給他一項任務他辦了四才滿意

從前有一個傻呆程式設計師,他老婆交給他一項任務:“去買3斤橙子,買最大最甜最便宜的臍橙”。   普通人買水果直接去店裡就買了,但程式設計師不同。程式設計師心道:“大,好分辨,甜,不好分辯。水果店老闆肯定不讓每個橙子都試吃一下的”。於是問Siri,Siri說:“一般橙子屁股上有臍圈的,是母橙,母橙

編程:從前有一個傻呆程序員老婆交給他一項任務他辦了四才滿意

img pic view blank 群發 cbe 快速排序 follow 圖片 從前有一個傻呆程序員,他老婆交給他一項任務:“去買3斤橙子,買最大最甜最便宜的臍橙”。 普通人買水果直接去店裏就買了,但程序員不同。程序員心道:“大,好分辨,甜,不好分辯。水果店老板肯定不

shell指令碼手動執行成功定時任務呼叫失敗的解決方法

場景:寫的shell指令碼,在secureCRT 命令視窗執行沒有問題,當新增定時任務執行shell指令碼時出現如下中的某些問題。1,出現找不著 命令如:java、db2等命令。 2,編碼格式不對等,如java讀取中文文字 讀取後為問號? 。 原因:使用者的環境變數在she

關於使用phpstudy搭建本地伺服器80埠系統服務佔用不能關掉

最近我在使用apache+php+mysql搭建本地伺服器,使網站能在本地執行起來。由於php的環境搭建比較複雜,於是我就想使用phpstudy這個整合環境的軟體。這個軟體蠻好用的,唯一的缺點就是如果預設的埠被系統程序佔用後,不能強制開啟。請原諒我一定要使用預設埠,因為我覺