Quartz

http://www.quartz-scheduler.net/

Hangfire

http://hangfire.io/

Install-Package Hangfire
使用OWIN初始化
  public partial class Startup
{
private readonly string HangFireDB = @””;
public void Configuration(IAppBuilder app)
{
app.UseHangfire(config =>
{
config.UseSqlServerStorage(HangFireDB);
config.UseServer(); });
RecurringJob.AddOrUpdate(() => TestJob(), Cron.Daily);
ConfigureAuth(app);
} public void TestJob()
{ }
}

访问:http://your-site/hangfire ,可以方便 查看,管理,触发JOB等

FluentScheduler

https://github.com/jgeurts/FluentScheduler 
Nuget :Install-Package FluentScheduler 
使用很简单,一直直接使用TaskManager类管理即可

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentScheduler; namespace TestFluentScheduler
{
class Program
{
static void Main(string[] args)
{
TaskManager.AddTask(() =>
{
//Do something...
Console.WriteLine("Timer task,current time:{0}", DateTime.Now);
}, t =>
{
//每5秒钟执行一次
t.ToRunNow().AndEvery(5).Seconds();
////带有任务名称的任务定时器
//t.WithName("TaskName").ToRunOnceAt(DateTime.Now.AddSeconds(5));
});
Console.ReadKey();
}
}
}

使用继承FluentScheduler的Registry类(需要初始化)

using FluentScheduler;

public class MyRegistry : Registry
{
public MyRegistry()
{
// Schedule an ITask to run at an interval
Schedule<MyTask>().ToRunNow().AndEvery(2).Seconds(); // Schedule an ITask to run once, delayed by a specific time interval.
Schedule<MyTask>().ToRunOnceIn(5).Seconds(); // Schedule a simple task to run at a specific time
Schedule(() => Console.WriteLine("Timed Task - Will run every day at 9:15pm: " + DateTime.Now)).ToRunEvery(1).Days().At(21, 15); // Schedule a more complex action to run immediately and on an monthly interval
Schedule(() =>
{
Console.WriteLine("Complex Action Task Starts: " + DateTime.Now);
Thread.Sleep(1000);
Console.WriteLine("Complex Action Task Ends: " + DateTime.Now);
}).ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0); //Schedule multiple tasks to be run in a single schedule
Schedule<MyTask>().AndThen<MyOtherTask>().ToRunNow().AndEvery(5).Minutes();
}
}

在web程序的Global.asax文件中初始化

protected void Application_Start()
{
TaskManager.Initialize(new MyRegistry());
}

WebBackgrounder

http://www.nuget.org/packages/WebBackgrounder/ 
http://diaosbook.com/Post/2014/7/18/how-to-run-schedule-jobs-in-aspnet

Taskschedulerengine

http://taskschedulerengine.codeplex.com/

最新文章

  1. css 之 1.基本语法规范
  2. mysql 联合索引和唯一索引
  3. SharePoint 2013 Nintex Workflow 工作流帮助(九)
  4. Python中的闭包
  5. 【P1813】8的倍数
  6. w3c subscribe
  7. target与currentTarget的区别?
  8. ios专题 - socket(1)
  9. 如何修改Qt标准对话框的文字(例如,英文改成中文)
  10. 自动化高效css开发,畅谈less的灵活变化
  11. 使用WinSetupFromUSB来U盘安装windowsXP(不使用win PE系统)
  12. 使用SVM对于许多类型的多维数据分类
  13. IIS错误解决办法(HTTP Error 500.19 - Internal Server Error)
  14. 工作常用git命令
  15. Can you find it?
  16. vue+weui+FormData+XMLHttpRequest 实现图片上传功能
  17. 2018年秋季学期《c语言程序设计》学习总结
  18. 基于墨刀实现的购物app
  19. 获取json串里的某个属性值
  20. Django 路由报错友好提示

热门文章

  1. Active Job 基础
  2. Python交换两个变量值的函数
  3. python 正则表达式 符号及其定义
  4. Eclipse安装Java Class反编译插件
  5. Splay初学习
  6. 利尔达仿真器加有人CC3200模块USR-C322上电测试
  7. yarn 原理
  8. docker社区的geodata/gdal镜像dockerfile分析
  9. iOS 开发库相关(持续更新)
  10. Qt 报错onecoreuap\inetcore\urlmon\zones\zoneidentifier.cxx(359)\urlmon.dll!00007FF9D9FA5B50: