开发者社区> lampo> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler

简介: 在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东。 .NET Framework有自带的timer,但这个类只能完成一些简单的定时操作,比如间隔多久执行什么操作。
+关注继续查看

在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东。

.NET Framework有自带的timer,但这个类只能完成一些简单的定时操作,比如间隔多久执行什么操作。遇到一些复杂的定时任务,如从当前时间开始,多 少时间后间隔重复执行,timer类处理起来就相对困难了。经过多番查找搜索,终于找到一下比较好用的任务定时器–FluentScheduler,你可 以通过Nuget来引用,用程序包管理器执行如下命令即可安装:

Install-Package FluentScheduler

此组件可以在C#和ASP.NET程序中使用,使用方法很简单,官方有使用案例:

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();
    }
}

在ASP.NET程序的Global.asax文件中,首先初始化管理器,这样定时器就开启了。

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

如需了解关于FluentScheduler的应用实例,请访问我的下一篇《简单、轻量、功能非常强大的C#/ASP.NET定时调度任务执行管理组件–FluentScheduler之实例篇》

 

本文同步发布至我的个人网站【图享网】:推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler

----------------------------------------------------
专注Web和.NET开发,对前沿技术有深厚的兴趣~~~
个人独立博客图享网--【http://2sharings.com】,欢迎到访。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[Papers]MHD, $\pi$, Lorentz space [Suzuki, DCDSA, 2011]
$$\bex \sen{\pi}_{L^{s,\infty}(0,T;L^{q,\infty}(\bbR^3))} +\sen{{\bf b}}_{L^{\gamma,\infty}(0,T;L^{\tt,\infty}(\bbR^3))}^2\leq \ve_*, \eex$$ with $$\...
566 0
Request获取url各种信息的方法
Request获取url各种信息的方法   测试的url地址:http://www.test.com/testweb/default.aspx, 结果如下:  Request.ApplicationPath: /testweb  Request.
579 0
超全超实用的Javascript类库和jQuery插件大全之二:文字处理,表格和列表处理,实用的javascript开发工具
日期:2012-10-15  来源:GBin1.com 如果你需要解决一些开发中遇到的技术问题的话,很可能会找到一些相关的javascript类库或者是jQuery插件来实现。这样实用的类库或者jQuery插件往往是你应该时常收集并且保存的,特别是如果你不希望自己去处理不同浏览器的兼容性问题的话,使用现成的javascript类库或者是jQuery插件往往能够帮助你提高开发效率。
2031 0
一个用JavaScript生成思维导图(mindmap)的github repo
github 地址:https://github.com/dundalek/markmap 作者的readme写得很简单。 今天有同事问作者提供的例子到底怎么跑。这里我就写一个更详细的步骤出来。
0 0
一个用JavaScript生成思维导图(mindmap)的github repo
一个用JavaScript生成思维导图(mindmap)的github repo
0 0
修行Android Studio技巧到出神入化,快速涨薪-【国际化】、【JPG/PNG转WebP】、【代码折叠】篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
0 0
+关注
lampo
计算机科学与技术专业,全栈工程师,专注.NET及相关开发,对编码执着,对工作热情,热爱研究前沿技术
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《Pulsar 2.8.0 功能特性概述及规划》
立即下载
边缘程序(ER)
立即下载
低代码开发师(初级)实战教程
立即下载