.net任务调度框架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);
            }
        }

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

到此这篇关于.net任务调度框架FluentScheduler的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • .NET Core 分布式任务调度ScheduleMaster详解

    目录 1.什么是ScheduleMaster 2.使用ScheduleMaster 1.配置Http调度任务 2.配置程序集调度任务 3.使用Api接入任务 1.API Server 对接流程 2.创建程序集任务 3.创建HTTP任务 4.创建延时任务 4.框架简单分析 1.全局设计 2.Master和Work分析 1.什么是ScheduleMaster ScheduleMaster是分布式任务调度系统,是国内的一位开发者写的.简称:集中任务调度系统,最简单的理解ScheduleMaster,就

  • 详解免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)

    很多的软件项目中都会使用到定时任务.定时轮询数据库同步,定时邮件通知等功能..NET Framework具有"内置"定时器功能,通过System.Timers.Timer类.在使用Timer类需要面对的问题:计时器没有持久化机制:计时器具有不灵活的计划(仅能设置开始时间和重复间隔,没有基于日期,时间等):计时器不使用线程池(每个定时器一个线程):计时器没有真正的管理方案 - 你必须编写自己的机制,以便能够记住,组织和检索任务的名称等. 如果需要在.NET实现定时器的功能,可以尝试使用以

  • .net任务调度框架Hangfire简介

    任务调度是我们项目中常见的功能,虽然任务调度的功能实现本身并不难,但一个好用的轮子还是可以给我们的开发的效率提升不少的. 在.net环境中,较为有名的任务调度框架是HangFire与Quartz.NET,本文这里主要介绍Hangfire,相比Quartz.NET来说,它提供了更加友好的页面,使用起来更加方便.Hangfire的优点网上有不少文章介绍的,这里简单的列举一下: 支持各种常见的任务类型 持久化保存任务.队列.统计信息 重试机制 多语言支持 支持任务取消 支持按指定Job Queue处理

  • Abp集成HangFire开源.NET任务调度框架

    目录 简要说明 什么是Hangfire 简要说明 后台作业在系统开发的过程当中,是比较常用的功能.因为总是有一些长耗时的任务,而这些任务我们不是立即响应的,例如 Excel 文档导入.批量发送短信通知等. ABP vNext 提供了后台作业的支持,并且还提供了对 HangFire 和 RabbitMQ 的后台作业集成.开发人员在使用这些第三方库的时候,基本就是开箱即用,不需要做其他复杂的配置. ABP vNext 的实现就是在 CLR 的 Timer 之上封装了一层,周期性地执行用户逻辑.ABP

  • 详解.NET Core使用Quartz执行调度任务进阶

    一.前言运用场景 Quartz.Net是一个强大.开源.轻量的作业调度框架,在平时的项目开发当中也会时不时的需要运用到定时调度方面的功能,例如每日凌晨需要统计前一天的数据,又或者每月初需要统计上月的数据.当然也会出现既要统计日的也统计月的还需要进行其他的操作.那我们改如何来写这样的调度任务呢? 二.实际运用(.Net Core 2.2) 在一个解决方案中创建一个.Net控制台应用程序及一个类库,控制台应用程序用来作为程序的启动点.类库用来作为调度任务的执行程序. 然后我们需要完善一下项目的结构,

  • .net任务调度框架FluentScheduler简介

    之前我在文章中介绍过.net中的任务调度框架Hangfire,HangFire虽然本身输入比较简单好用的,但是,如果我们的程序本身提供的服务不是任务调度,而任务调度只是里面并不重要的小功能的时候,用HangFire显得有点过重了,这里本文就介绍一个简单好用的任务调度框架FluentScheduler. 比起Hangfire来,FluentScheduler相对就简单得多,它只是提供了一个类库,提供任务调度的基本功能,没有像hangfire的数据库,web服务的依赖,功能变少,也更加简单了.非常适

  • SpringMvc框架的简介与执行流程详解

    目录 一.SpringMvc框架简介 1.Mvc设计理念 2.SpringMvc简介 二.SpringMvc执行流程 1.流程图解 2.步骤描述 3.核心组件 三.整合Spring框架配置 1.spring-mvc配置 2.Web.xml配置 3.测试接口 4.常用注解说明 四.常见参数映射 1.普通映射 2.指定参数名 3.数组参数 4.Map参数 5.包装参数 6.Rest风格参数 五.源代码地址 一.SpringMvc框架简介 1.Mvc设计理念 M:代表模型Model 模型就是数据,应用

  • Java 任务调度框架 Quartz实操

    目录 1.Quartz 1.1 引入依赖 1.2 入门案例 任务类,需要实现 Job 接口 定时器类 1.3 Job 与 JobDetail 1.4 JobExecutionContext 1.5 JobDataMap 手动获取 JDM 参数案例 2.Job 类实现 JDM 参数的 Setter 方法,实例化时自动绑定参数 1.6 Job 状态 有无状态 Job 区别案例 1.7 Trigger Trigger 获取参数案例 1.8 SimpleTripper  Quartz相较于Timer,

  • Python的Flask框架的简介和安装方法

    请在开始使用 Flask 之前阅读本文.也希望本文能够回答关于 Flask 项目的初衷以及目标,以及 flask 适用的场景(情境)等问题. 什么是 "微"? "微" ("Micro") 并不是意味着把整个 Web 应用放入到一个 Python 文件,尽管确实可以这么做.当然"微" ("Micro") 也不是意味 Flask 的功能上是不足的.微框架中的 "微" ("Micro

  • Web服务器框架 Tornado简介

    Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务. 高性能web服务器框架Tornado简单实现restful接口及开发实例 http://www.jb51.net/article/52209.htm 要使用它,必须按照以下套件: 1)Python(建议使用Python 2.5 / Python 2.6) 2)Simplejson(建议使用simplejson 2.0.9) 3)cUR

  • PHP微框架Dispatch简介

    Dispatch是一个PHP小框架.它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序.这对API.简单的站点或原型来说是完美的. 复制代码 代码如下: //包含库include 'dispatch.php';// 定义你的路由get('/greet', function () {//渲染视图render('greet-form');});//post处理post('/greet', function () {$name = from($_POST, 'name')

  • Python爬虫框架Scrapy简介

    在爬虫的路上,学习scrapy是一个必不可少的环节.也许有好多朋友此时此刻也正在接触并学习scrapy,那么很好,我们一起学习.开始接触scrapy的朋友可能会有些疑惑,毕竟是一个框架,上来不知从何学起.从本篇起,博主将开启scrapy学习的系列,分享如何快速入门scrapy并熟练使用它. 本篇作为第一篇,主要介绍和了解scrapy,在结尾会向大家推荐一本关于学习scrapy的书,以及获取的方式. 为什么要用爬虫框架? 如果你对爬虫的基础知识有了一定了解的话,那么是时候该了解一下爬虫框架了.那么

  • .net新兴日志框架Serilog简介

    Serilog是.net下的新兴的日志框架,本文这里简单的介绍一下它的用法. 首先安装Nuget包: Install-Package Serilog Install-Package Serilog.Sinks.Console 其中包Serilog是Log核心库,Serilog.Sinks.Console是Log的控制台输出库,这个也是日志框架的一贯策略,一个核心库加多个输出库组合使用,这样可以保持良好的扩展性. 简单的示例: using (var log = new LoggerConfigur

随机推荐