zoukankan      html  css  js  c++  java
  • 任务调度框架FluentScheduler简介

    之前我在文章中介绍过.net中的任务调度框架Hangfire,HangFire虽然本身输入比较简单好用的,但是,如果我们的程序本身提供的服务不是任务调度,而任务调度只是里面并不重要的小功能的时候,用HangFire显得有点过重了,这里本文就介绍一个简单好用的任务调度框架FluentScheduler

    比起Hangfire来,FluentScheduler相对就简单得多,它只是提供了一个类库,提供任务调度的基本功能,没有像hangfire的数据库,web服务的依赖,功能变少,也更加简单了。非常适用于任务调度功能的集成。

    它使用也比较简单,一个简单的示例如下:

            static void Main(string[] args)
            {
                JobManager.Initialize(new MyRegistry());
                Console.ReadLine();
            }
    
            public class MyRegistry : Registry
            {
                public MyRegistry()
                {
                    // Schedule an IJob to run at an interval
                    // 立即执行每10秒一次的计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)
                    Schedule(() => Console.WriteLine(DateTime.Now))
                       .ToRunNow().AndEvery(10).Seconds();
    
                    // 立即执行每10秒一次的计划任务。如果本次任务没有结束,下一次的任务则不会开始,禁止并行运行
                    Schedule(() => Console.WriteLine(DateTime.Now))
                       .NonReentrant()
                       .ToRunNow().AndEvery(10).Seconds();
    
                    //在每天的21:15执行计划任务
                    Schedule(() => Console.WriteLine("It's 9:15 PM now."))
                       .ToRunEvery(1).Days().At(21, 15);
                    
                    // 立即执行一个在每月的第一个星期一 3:00 的计划任务
                    Schedule(() => Console.WriteLine("It's 3:00 AM now."))
                       .ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0);
                    
                    //在每周一的21:15执行计划任务
                    Schedule(() => Console.WriteLine("It's 9:15 PM now."))
                       .ToRunEvery(1).Weeks().On(DayOfWeek.Monday).At(21, 15);
                }
            }
    View Code

    基本的功能还是都有的,没有依赖项,也适用于各种.net框架,非常好用。

  • 相关阅读:
    安装完QQ必须要删除掉的几个恐怖文件
    dede实战系统:更换成kindEditor编辑器
    PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题
    DEDECMS图片集上传图片出错302的解决办法
    dedecms安装完成后登录后台出现空白
    OFV.msi是什么 为什么更新时无法安装
    CentOS 挂载NTFS分区的两种方法
    centos使用yum安装gcc
    NetBeans菜单栏字体太小了
    注入漏洞页
  • 原文地址:https://www.cnblogs.com/TianFang/p/10277360.html
Copyright © 2011-2022 走看看