之前不知道什麼是計劃任務,但是弄過定時執行。後來聽別人一陣解釋大致理解。原來就是定時執行的高大上說法。
在服務端,有時候確實很需要定時做一些事情,比如晚上十二點人少的時候清理一下log,數據的重置等等。以前就是簡單的寫一個控制台,定時執行(或者加入系統服務),當然這是粗糙的做法。然後發現C#自己的實現框架不多,也有移植java的框架。
發現自己也用不到那麼高大上的。然後就自己寫了一個簡單的。
public static void Main (string[] args) { TCore core = new TCore(); TTask task_1 = new TTask(); task_1.DoTask += Start_1; task_1.TTime = "* * * * * n%10"; task_1.TName = "任務_1"; task_1.isLongTask = true; task_1.isRun = true; TTask task_2 = new TTask(); task_2.DoTask += Start_2; task_2.TTime = "* * * * * n%15"; task_2.TName = "任務_2"; task_2.isRun = true; TTask task_3 = new TTask(); task_3.DoTask += Start_3; task_3.TTime = "* * * * * n%20"; task_3.TName = "任務_3"; task_3.isRun = true; core.JoinTask(task_1); core.JoinTask(task_2); core.JoinTask(task_3); core.Run(); }
我是根據每個的時間公式判斷的,感覺很不錯。
時間規則如下:
年 月 日 時 分 秒
中間以空格分割,可以用n代表當前的時間數,然後做公式運行,最後結果為0就代表符合條件,單個*代表所有匹配。
然後區分短任務和長任務,短任務用Task類承載運行,長任務用Thread承載運行。
可以改成配置的方式,然後把任務放在dll裡面,更新就更新dll。
代碼下載地址:http://files.cnblogs.com/files/RainbowInTheSky/Twork.zip
windows運行:
ubuntu14.04運行: