开源一个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^.

相关文章
相关标签/搜索