開源一個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:  }

 DemoJobhtml

   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.configgit

   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:發佈成服務時的服務名稱(最好不要有空格)github

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

description:發佈成服務時的服務描述框架

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

 

執行任務

若是是開發調試階段,能夠直接啓動Windows.TaskSchedule.exe 這樣能夠直接在控制檯輸出相關信息。spa

若是要部署成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^.

相關文章
相關標籤/搜索