windows 服务实现定时任务调度
Quartz是OpenSymphony開(kāi)源組織在Job scheduling領(lǐng)域又一個(gè)開(kāi)源項(xiàng)目,它可以與c#應(yīng)用程序相結(jié)合也可以單獨(dú)使用。Quartz可以用來(lái)創(chuàng)建簡(jiǎn)單或?yàn)檫\(yùn)行十個(gè),百個(gè),甚至是好幾萬(wàn)個(gè)Jobs這樣復(fù)雜的程序。Jobs可以做成標(biāo)準(zhǔn)的c#組件。Quartz的最新版本為Quartz 2.3.2。
Quartz是一個(gè)完全由java編寫(xiě)的開(kāi)源作業(yè)調(diào)度框架。不要讓作業(yè)調(diào)度這個(gè)術(shù)語(yǔ)嚇著你。盡管Quartz框架整合了許多額外功能, 但就其簡(jiǎn)易形式看,你會(huì)發(fā)現(xiàn)它易用得簡(jiǎn)直讓人受不了!簡(jiǎn)單地創(chuàng)建一個(gè)實(shí)現(xiàn)org.quartz.Job接口的java類(lèi)。Job接口包含唯一的方法:
public?void?execute(JobExecutionContext?context) throws?JobExecutionException;在你的Job接口實(shí)現(xiàn)類(lèi)里面,添加一些邏輯到execute()方法。一旦你配置好Job實(shí)現(xiàn)類(lèi)并設(shè)定好調(diào)度時(shí)間表,Quartz將密切注意剩余時(shí)間。當(dāng)調(diào)度程序確定該是通知你的作業(yè)的時(shí)候,Quartz框架將調(diào)用你Job實(shí)現(xiàn)類(lèi)(作業(yè)類(lèi))上的execute()方法并允許做它該做的事情。無(wú)需報(bào)告任何東西給調(diào)度器或調(diào)用任何特定的東西。僅僅執(zhí)行任務(wù)和結(jié)束任務(wù)即可。如果配置你的作業(yè)在隨后再次被調(diào)用,Quartz框架將在恰當(dāng)?shù)臅r(shí)間再次調(diào)用它。
public?partial?class?Service1?:?ServiceBase{public?Service1(){InitializeComponent();}protected?override?void?OnStart(string[]?args){//todo:這里是服務(wù)啟動(dòng)所執(zhí)行的代碼}protected?override?void?OnStop(){//todo:這里是服務(wù)停止所執(zhí)行的代碼}} private?void?StartDoSomething(){System.Timers.Timer?timer?=?new?System.Timers.Timer(10000);?//間隔10秒timer.AutoReset?=?true;timer.Enabled?=?false;??//執(zhí)行一次timer.Elapsed?+=?new?ElapsedEventHandler(ExecutionCode);timer.Start();}private?void?ExecutionCode(object?source,?System.Timers.ElapsedEventArgs?e){string?dtNow?=?DateTime.Now.ToString("HH:mm");if?(dtNow?==?"12:00"){File.WriteAllText("D:/ExecutionService.txt",?"服務(wù)執(zhí)行了一次任務(wù)",?Encoding.UTF8);}} ??????protected?override?void?OnStart(string[]?args){StartDoSomething();}???以上就可以算是一個(gè)簡(jiǎn)單的定時(shí)執(zhí)行任務(wù)的windows服務(wù)。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的windows 服务实现定时任务调度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gRPC四种模式、认证和授权实战演示
- 下一篇: netcore一键nssm发布为wind