分享几个.NET 下的计划任务组件

Quartz

http://www.quartz-scheduler.net/(现项目在使用,可以看我之前的文章)

Hangfire

http://hangfire.io/

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/

时间: 2024-11-05 11:00:10

分享几个.NET 下的计划任务组件的相关文章

大三下学期计划

大三下学期计划: 学习C#也有1年多了,对于这门技术也有了大致的了解,相比较java而言,自己还是喜欢C#语言的,更别说宇宙最强大的IDE了. 马上也要找工作了,下面是对于自己这一学期的计划. 1:参加学校的挑战杯,把自己的项目完善,将来找工作的时候可以很好的向HR介绍自己的项目. 2:每天学习点asp.net的基础,mvc在项目中的使用等,自己也要看从图书馆借来的书<C#基础教程><C#5.0入门经典>,看书的时候可以把笔记也在纸上面,这样自己可以很好的复习了. 3:对于数据库的

2014MadCon厦门分享会-笔记(下)

32 <如何与百度互动,不知道这些就不要做SEO了>百度站长平台资深产品运营师 曹丽丽(飞鸟) 33 注意百度站长平台的提醒.如果你不留电话,不留其他联系方式,出问题了,百度怎么提醒你呢? 34 为什么高富帅换域名时很平稳啊?注意使用以下工具:(1)高级互动工具-网站改版(需要提交相关信息,在过度一个月之后,再撤掉原来的域名)(2)抓取异常&拒绝外链(这些都要做好重定向,提前做好准备) 35 搜索结果还是可以出图的,就是在搜索结果中显示出图片(这个需要提供结构化数据) 36 更好收录.

Linux下的计划任务和日志管理

Linux下的计划任务和日志管理   一:实验环境: 1:虚拟机 2:两个linux系统 二:实验目标 1:at 定制单次执行的计划任务 2:cron定制周期性计划任务 3:配置脚本实现周期性任务 4:配置公司内网服务器每天自动开关机 5:Linux系统日志记录规律 6:自定义日志记录方式 7:配置远程收集日志服务器 三:实验步骤 1):at 定制单次执行的计划任务 第一块 at 定制单次执行的计划任务 前提:服务:atd  必须开启 #查询atd是否运行,只有运行,才能工作. [[email 

linux下任务计划详解

一次性任务计划 用at(指定时间执行任务,需开启atd服务)   batch(不指定执行时间,在系统空闲时/系统负载较低时自动执行任务)等命令来实现 周期性任务计划 cron(需启动crond服务) at介绍 at now+3min|11:30|noon,midnight,teatime(更多时间指定格式见man at页)  回车  在>提示符下可输入多行命令,用ctrl+d提交任务 atq 查看当前等待执行的atd的命令队列,或  at  -l at会将执行结果(即执行输出)以邮件方式发给任务

Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法

1.将下载的IIS Rewrite 组件解压,放到适当的目录(如 C:Rewrite)下,IIS Rewrite 组件下载 http://www.helicontech.com/download-isapi_rewrite.htm , IIS Rewrite 简化版组件下载 http://www.newhua.com/soft/71446.htm ,下载下来解压后不用安装拷到目 2.将下载的IIS Rewrite 组件解压,放到适当的目录(如 C:Rewrite)下,IIS Rewrite 组件

上拉、下拉无限滚动组件-pc端

场景: web项目,聊天记录历史搜索.需要支持上拉无限加载,下拉无限加载. 目标: 支持所需场景:可配置. 难点: 顶部无限滚动很麻烦,网上没找着好的解决方案.刚开始 顶部也想使用 IntersectionObserver 特性来做,但二次触发比较麻烦,后来改用监听 scroll 事件.问题又来了,滚动条一直处于顶部,无法保持原来的位置. 本例解决方案是:利用 scrollIntoViewIfNeeded 特性,在组装列表完成后,手动调用,使其滚动到 原来的列表项位置. 成品效果: 凑合能用,O

手把手写一个基于Spring Boot框架下的参数校验组件

手把手写一个基于Spring Boot框架下的参数校验组件(JSR-303) 前言 之前参与的新开放平台研发的过程中,由于不同的接口需要对不同的入参进行校验,这就涉及到通用参数的校验封装,如果不进行封装,那么写出来的校验代码将会风格不统一.校验工具类不一致.维护风险高等其它因素,于是我对其公共的校验做了一个封装,达到了通过注解的方式即可实现参数统一校验. 遇到的问题                    在封装的时候就发现了一个问题,我们是开放平台,返回的报文都必须是统一风格,也就是类似于{co

案例分享|数据可视化下的驱动业务增长

在我国,制造业有两种态势:一种是生产同质化产品,产品价格公开,利润几乎透明:一种是高新技术产品,利润大,但创新和管理成本高.如何在同质化的产品中做好精细化和管理和成本控制,如何驱动创新成为制造业重出产能过剩的包围圈的两大突破口. 泰尔重工股份有限公司(以下简称"泰尔重工"."公司")成立于2001年,主要从事工业万向轴.汽车零部件等产品的设计.研发.制造.销售与服务.泰尔重工是国家级技术创新示范企业,笔者发文时市值已超34亿.在信息化方面,2016年下半年,泰尔重工

linux下定时任务计划的使用

一.定时任务之at实现: PS:本次操作以CentOS 7.5为实验环境: 1.1.at软件包说明 最小化安装,可能没有at或atq这个命令,at来自于软件包at,如果yum能用,直接: yum -y install at [[email protected] ~]# rpm -ql at /etc/at.deny /etc/pam.d/atd /etc/sysconfig/atd /usr/bin/at /usr/bin/atq /usr/bin/atrm /usr/bin/batch /us