一、效果圖
作業啟動狀態
作業停止狀態
二、quartz
排程的核心庫用的是 quartz.net。官方**:這裡有更多的中文介紹。
先建立乙個類庫,新建乙個taskjob類用來執行任務。
using
system;
using
system.collections.generic;
using
system.text;
using
quartz;
namespace
myjob}}
正如你所見,乙個繼承了ijob的taskjob,將要執行的任務統統放在execute中即可!
三、作業排程
建立乙個winform專案,並新增對quartz.dll和類庫的引用。
jobconfig.xml
新建乙個jobconfig.xml檔案,指定taskjob並配置job的觸發時間。
可以指定具體的執行時間,如0 50 9 ? * * 表示每天9點50點觸發。
也可以指定為一段時間內重複多少次,如 0 0/1 8-20 ? * mon-fri 表示周一到周五每天的8點到20點,每一分鐘觸發一次。
xml version="1.0" encoding="utf-8"
?>
<
quartz
xmlns
=""xmlns:xsi
=""version
="1.0"
overwrite-existing-jobs
="true"
>
<
job>
<
job-detail
>
<
name
>
myjob
name
>
<
group
>
myjob
group
>
<
job-type
>
myjob.taskjob, myjob
job-type
>
job-detail
>
<
trigger
>
<
cron
>
<
name
>
cronmyjob
name
>
<
group
>
cronmyjob
group
>
<
job-name
>
myjob
job-name
>
<
job-group
>
myjob
job-group
>
<
cron-expression
>
0 50 9 ? * *
cron-expression
>
cron
>
trigger
>
job>
quartz
>
handlemask
建立乙個類,用來控制job的開啟和停止。
using
system;
using
system.collections.generic;
using
system.text;
using
system.io;
using
system.collections;
using
quartz;
using
quartz.impl;
using
quartz.xml;
namespace
public
class
handlemask
public
void
stop()}}
} start的時候會根據jobconfig.xml中的配置排程taskjob中的execute。
控制器
控制器的主要功能是啟動和停止對作業的排程。
初始化
在下面的建構函式中用到了 mutex 。可見參考使用 mutex實現會話狀態下單例項執行和系統範圍內單例項執行 。
同時,在窗體初始化時,就啟動了作業。
batch
=new
handlemask();
batch.start();
handlemask batch;
bool
closetag
=true
;public
form1()
catch
(exception ex)
if(newmutexcreated)
else
}catch
(exception ex)}
作業啟動事件
private
void
tscbstart_click(
object
sender, eventargs e)
作業停止事件
private
void
tscbstop_click(
object
sender, eventargs e)
退出事件
private
void
tscbexit_click(
object
sender, eventargs e)
}private
void
minimizedtonormal()
private
void
normaltominimized()
private
void
notifyicon1_mouseclick(
object
sender, mouseeventargs e)
}private
void
form1_formclosing(
object
sender, formclosingeventargs e)}
原始碼。青羽tenghoo.cnblogs.com
www.apihi.com
學習筆記 06 Python爬蟲開發 作業
立即學習 肯德基位址爬取 根據查詢時的狀態,如果url發生變化,則不是阿賈克斯強求,如果沒有發生變化,則是 import requests import json if name main for i in range 1,6 number i url keyword header r reques...
現代程式設計 網頁前端開發作業(to 鄒欣老師)
在一些著名的 的搜尋框上,會有一種 自動完成 功能。現在,我們來考慮如何實現這個功能。在這一步,不要估計開發時間。把學習新技術 一些前端基礎知識 的時間花在這個階段。以完成原型為目標,不必深入技術。去 獲得入門知識 去 查閱文件 請僅僅從功能角度分析這三個元件。提示,如果你試圖從 中找到答案,你很可...
基於c 的作業排程演算法模擬
程式實現了作業排程演算法中的fcfs演算法和sjf演算法.fcfs演算法 優先考慮系統中等待時間長的作業 而不管該作業所需執行時間長短.說的通俗點 哪個作業先提交 哪個作業先進記憶體.這是對作業排程而言 同樣 fcfs演算法也可以用於程序排程 此時 誰先進記憶體的誰先上cpu.那麼這樣一來就會出現這...