MVC 使用 FluentScheduler 定时器计划任务

MVC 使用 FluentScheduler 定时器计划任务

MacBook Pro 只有四个 USB Type-C 接口是否错了?

一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自己的舒适区,社会丝毫没有创新与进步而言。

其实, USB Type-C 接口协议在三年前几个科技巨头公司就参与制定了协议,并答应要在自家的产品上推广它,但谁都怕一下子在自家产品上升级 USB Type-C 接口被消费者骂出翔进而影响产品销量,这时候,苹果公司跳出来了干了这件事,在去年的 MacBook 升级中就已经把 USB Type-A 取消了,好像大家也并没用过多抵触,可能是使用的人少的原因,但是就在刚刚发布的 MacBook Pro 中取消了全部接口,仅仅只有四个 USB Type-C 了,然后大家都莫名高潮了,说「什么苹果智障!不考虑消费者!出门要带一堆转接头!!苹果就是为了赚配件的钱!!新款手机连接不是新款电脑!!我要去买老款的 MacBook Pro !!!库克是个同性恋!!!苹果吃枣药丸!!!」。

好吧,你们赢了。

如果你作为消费者来仔细想想,当然你本来就是消费者,可以正反随便插、想怎么插怎么插,晚上也不用开灯就能插,速度而且快的惊人,这个口用处多的数不清,想怎么用怎么用,你现在会怎么想?反正现在好多 Android 手机已经是 USB Type-C 了。

FluentScheduler 是什么?

Automated job scheduler with fluent interface.

这是作者在 Github 上的介绍,就是一个定时任务管理器。在 .Net 下类似的有微软的 Timer 、 Quartz.NET 、 FluentScheduler 以及Windows服务等,关于 Quartz.NET 的使用几乎和 Java 下的 Quartz 没什么区别,我之前写过一篇 Spring 使用 Quartz 任务调度定时器 是关于 Quartz 的。

定时任务或者说作业调度,可能也只有在你指定一个时间做统计、发邮件或者一些你想完成的业务逻辑时有用,这也是它出现的目的。

如何使用 FluentScheduler ?

我是推荐你去作者的 Github 去看看源码或例子,地址: https://github.com/fluentscheduler/FluentScheduler
当然,这里我用作者的例子做了演示和翻译,保证谁都能看的懂。

一、安装FluentScheduler程序包
打开程序包管理控制台,输入Install-Package FluentScheduler即可。步骤:状态栏选择 工具 - 库程序包管理器 - 程序包管理控制台,如下图:

输入Install-Package FluentScheduler

二、写代码
我这里只简单贴一下作者的示例代码,更推荐你去 Github 看,但我随手翻译了一下,或许更容易阅读一些。

public class Demo : Registry
{
    public Demo()
    {
        // Schedule an IJob to run at an interval
        // 立即执行每两秒一次的计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)
        Schedule<MyJob>().ToRunNow().AndEvery(2).Seconds();

        // Schedule an IJob to run once, delayed by a specific time interval
        // 延迟一个指定时间间隔执行一次计划任务。(当然,这个间隔依然可以是秒、分、时、天、月、年等。)
        Schedule<MyJob>().ToRunOnceIn(5).Seconds();

        // Schedule a simple job to run at a specific time
        // 在一个指定时间执行计划任务(最常用。这里是在每天的下午 1:10 分执行)
        Schedule(() => Trace.WriteLine("It‘s 1:10 PM now.")).ToRunEvery(1).Days().At(13, 10);

        Schedule(() => {

            // 做你想做的事儿。
            Trace.WriteLine("It‘s 1:10 PM now.");

        }).ToRunEvery(1).Days().At(13, 10);

        // Schedule a more complex action to run immediately and on an monthly interval
        // 立即执行一个在每月的星期一 3:00 的计划任务(可以看出来这个一个比较复杂点的时间,它意思是它也能做到!)
        Schedule<MyComplexJob>().ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0);

        // Schedule multiple jobs to be run in a single schedule
        // 在同一个计划中执行两个(多个)任务
        Schedule<MyJob>().AndThen<MyOtherJob>().ToRunNow().AndEvery(5).Minutes();

    }

}

public class MyJob : IJob
{

    void IJob.Execute()
    {
        Trace.WriteLine("现在时间是:"+DateTime.Now);
    }
}

public class MyOtherJob : IJob
{

    void IJob.Execute()
    {
        Trace.WriteLine("这是另一个 Job ,现在时间是:" + DateTime.Now);
    }
}

public class MyComplexJob : IJob
{

    void IJob.Execute()
    {
        Trace.WriteLine("这是比较复杂的 Job ,现在时间是:" + DateTime.Now);
    }
}

三、初始化
Global.asax中加入一句

JobManager.Initialize(new Demo());

上面是简单的使用,其实已经足够了,当然还有更多变态的需求,作者也在文档里写了,比如这个:你想执行一个计划任务,每周一 14:00 运行。但现在是星期一上午 10:00 ,那你的程序应该在今天运行还是在下周星期一?这里用到了 ToRunEvery
还有并发任务的处理,有兴趣可以去看看。

总结一下

FluentScheduler 是 .Net 下,可以让你轻松实现定时任务的工具,不需要再去写Windows服务了,更重要的是时间设置起来灵活很多,定时任务难点不就是在这么。

时间: 2024-10-31 02:15:15

MVC 使用 FluentScheduler 定时器计划任务的相关文章

ASP.NET MVC 使用 FluentScheduler 定时器计划任务

MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自己的舒适区,社会丝毫没有创新与进步而言. 其实, USB Type-C 接口协议在三年前几个科技巨头公司就参与制定了协议,并答应要在自家的产品上推广它,但谁都怕一下子在自家产品上升级 USB Type-C 接口被消费者骂出翔进而影响产品销量,这时候,苹果公司跳出来了干了这件事,在去年的 MacBoo

【转】ASP.NET MVC 使用 FluentScheduler 定时器计划任务

MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自己的舒适区,社会丝毫没有创新与进步而言. 其实, USB Type-C 接口协议在三年前几个科技巨头公司就参与制定了协议,并答应要在自家的产品上推广它,但谁都怕一下子在自家产品上升级 USB Type-C 接口被消费者骂出翔进而影响产品销量,这时候,苹果公司跳出来了干了这件事,在去年的 MacBoo

FluentScheduler定时器计划任务

http://www.cnblogs.com/lgxlsm/p/6734011.html 用了FluentScheduler后,再也比想用timer计时器了. FluentScheduler 是 .Net 下,可以让你轻松实现定时任务的工具,不需要再去写Windows服务了,更重要的是时间设置起来灵活很多,定时任务难点不就是在这么. 1.nuget包 <?xml version="1.0" encoding="utf-8"?> <packages&

学习安排

10.31 - 11.06 1..Net下几个服务框架介绍http://www.cnblogs.com/beyondbit/p/6019954.html 2.ASP.NET MVC 使用 FluentScheduler 定时器计划任务http://www.cnblogs.com/mafly/p/FluentScheduler.html 3.SQL Server 存储过程的几种常见写法分析,我们该用那种写法http://www.cnblogs.com/wy123/p/5958047.html 4.

MVC概述

学习MVC模式   一.MVC简介 MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它把应用程序分成三个核心模块:模型.视图.控制器,它们各自处理自己的任务. 1.模型(Model) a.模型是应用程序的主体部分,模型表示业务数据和业务逻辑. b.一个模型能为多个视图提供数据. c.由于应用于模型的代码只需写一次就可以被多个视图重用,所以提高了代码的可重用性. 2.视图(View): 简单来说就是在页面上填写java代码实现显示. 详细来说视

Java的MVC模式简介

Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller),即为MVC.它是一种软件设计的典范, 一.MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个

转---MVC设计模式详解

MVC(Model View Controller)模型(model)-视图(view)-控制器(controller):MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,从例子可以看出MVC就是Observer设计模式的一个特例.MVC如何工作MVC是一个设计模式,它强制性

MVC模型的基本原理及实现原理

[转载]MVC架构在Asp.net中的应用和实现 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能为Web应用带来的好处.并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.net环境下的具体实现.旨在帮助Web设计开发者更好的了解和掌握MVC,合理利用MVC构建优秀的Web应用. 关键字:MVC.视图.控制器.模型.Asp.net Application and Implementation of MVC Construction in Asp.net Abstract

MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 外文名 MVC框架 全    名 Model View Controller 产生时间 1982年 架构内容