開源一個windows下的定時任務框架,簡單粗暴好用。


這里是你想要的功能:

  1. 支持插件,將你要執行的任務編譯成程序集放到框架的根目錄下,再進行簡單的配置就行了。
  2. 支持Corn表達式。想讓任務在什么時候執行就在什么時候執行。
  3. 支持安裝成windows service (通過topshelf實現)
  4. 保證任務在執行階段,就算到了下一個觸發時間,不重復執行(如果本次還沒執行完的話)。
  5. 還有…等我想到了再實現^o^,您也可以關注項目的地址:https://github.com/leleroyn/Windows-TaskSchedule,提出你想要的功能。

簡單介紹下項目的使用:

編寫插件支持

需要實現框架中的Ijob接口,框架中內置了一個簡單的不能再簡單的示例任務。直接看代碼:

  IJob
   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:   
   6:  namespace Windows.TaskSchedule
   7:  {
   8:      public interface IJob
   9:      {
  10:          void Init();
  11:          void Excute();
  12:          void OnError(Exception ex);        
  13:      }
  14:  }

 DemoJob

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:   
   6:  namespace Windows.TaskSchedule
   7:  {
   8:      public class DemoJob:IJob
   9:      {
  10:          static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(DemoJob));
  11:          DateTime date = new DateTime();
  12:          public void Init()
  13:          {
  14:              date = DateTime.Now;
  15:          }
  16:   
  17:          public void Excute()
  18:          {
  19:              logger.Debug(date);           
  20:          }
  21:   
  22:          public void OnError(Exception ex)
  23:          {
  24:              logger.Debug(ex.ToString());
  25:          }       
  26:      }
  27:  }

配置插件到框架中執行

通過修改configs目錄下的Jobs.config文件,讓框架識別你的任務。

Jobs.config

   1:  <?xml version="1.0" encoding="utf-8" ?>
   2:  <Jobs serverName="demo-server" displayName="測試服務" description="測試服務的描述">
   3:    <Job name="demoJob1" type="Windows.TaskSchedule.DemoJob,Windows.TaskSchedule" cornExpress="0/3 * * * * ?"  />
   4:  </Jobs>

參數說明:

serverName:發布成服務時的服務名稱(最好不要有空格)

displayName:發布成服務時的服務顯示名稱

description:發布成服務時的服務描述

Job節點就是各個任務的具體配置了,name:任務的名稱(最好唯一),type:插件的具體實例與程序集,cornExpress:任務執行的時間,只支持corn表達式

 

執行任務

如果是開發調試階段,可以直接啟動Windows.TaskSchedule.exe 這樣可以直接在控制台輸出相關信息。

如果要部署成windows服務,需要在命令行下 先執行Windows.TaskSchedule.exe install  進行安裝,然后啟動:Windows.TaskSchedule.exe start

卸載windows服務也很簡單,直接執行 Windows.TaskSchedule.exe uninstall   具體可參考topshelf組件的使用方法。http://topshelf-project.com/

 

想要源碼,如果你細心的話在文章的開頭就應該有啦,我還是貼一下地址吧:https://github.com/leleroyn/Windows-TaskSchedule

申明一下,此項目主要是借助一些第三方的組件,有疑問或者建議可以在這或者github里給我留言,項目實際過程中出現任何問題概不負責^o^.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM