需求背景:建立的quartz任務需要用到三個引數,根據引數去執行並將結果入庫,並且引數可修改更新。
這裡,有三個引數需要傳入,分別是planid、target、officeid
定義job類:
publicclass statisticstaskservice implements
job else
if(target.equals("2"))else
logger.info("job:"+planid+" target:"+target);
}}
定義引數類:
publicclass jobparameter implements
serializable
public
void
setplanid(string planid)
public
string gettarget()
public
void
settarget(string target)
public
string getofficeid()
public
void
setofficeid(string officeid)
@override
public
string tostring()
}
建立任務建立和修改方法:
1.建立任務:
publicstatic
void
createschedulejobwithparams(scheduler scheduler, string jobname,
string jobgroup, string cronexpression, class
<? extends job>jobclass,
string planid,string target,string officeid)
} catch
(schedulerexception e)
}
2.修改任務:
publicstatic
void
updateschedulejobwithparams(scheduler scheduler, string jobname, string jobgroup, string cronexpression,
string planid,string target)
catch
(schedulerexception e)
}
編碼總結:
最開始時我將三個引數直接put進jobdetail的jobdatamap,發現任務中能夠正常讀取,但是在更新引數是發現set後值不變,不知是不是jobdatamap繼承dirtyflagmap的原因,沒有深究。
後將三個引數封裝為物件,並實現序列化,以物件形式傳入,修改就沒有問題了。
quartz任務定時任務建立
排程器 任務排程器類 author wwr public class taskscheduler 任務排程 param jobclass 任務類 param job1 任務名 param job1group 任務組別 param trigger1 觸發器名字 param triggergroup 觸...
c 建立帶引數的執行緒
1 無引數執行緒的建立 thread thread new thread new threadstart getpic thread.start private void showmessage 2 帶乙個引數的執行緒 使用parameterizedthreadstart,呼叫 system.thr...
Quartz定時任務的並行與序列
quartz定時任務的並行與序列 1.quartz定時任務的執行策略有並行和序列之分。所謂並行是指多個任務同時執行的情況,即若兩個任務的執行時間存在重疊,兩個任務同時執行的情況。序列則是指乙個任務必須等其前乙個任務執行完畢之後再執行的策略。2.spring整合quartz時,控制定時任務的並行和序列...