之前不知道什麼是計劃任務,但是弄過定時執行。後來聽別人一陣解釋大致理解。原來就是定時執行的高大上說法。
在服務端,有時候確實很需要定時做一些事情,比如晚上十二點人少的時候清理一下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運行:
