C#灵活的任务调度组件FluentScheduler

2024-01-15 02:28

本文主要是介绍C#灵活的任务调度组件FluentScheduler,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FluentScheduler是一个C#的灵活的任务调度组件,支持各类任务调度。网上有很多演示代码,此处记录下来,方便自己查找。

// See https://aka.ms/new-console-template for more information
//Console.WriteLine("Hello, World!");using FluentScheduler;
//FluentScheduler 中 对象: IJob(工作)、Registry(注册)、Schedule(计划)start();void start()
{ JobManager.Initialize(new MyRegistry());//JobManager.AddJob(t => t.ToRunEvery(1).Days().At(24, 00));//每天的凌晨12点 执行 //JobManager.AddJob(t => t.ToRunEvery(1).Months().OnTheLastDay().At(8, 30));//每个月的最后一天早上八点半 执行JobManager.Start();//启动任务管理器}
while(true)Thread.Sleep(1000);/// <summary>
///  工作类
/// </summary>
public class MyJob : IJob
{public void Execute(){//编写需要工作的内容//比如输出一句话Console.WriteLine($"执行工作,{DateTime.Now:HH:mm:ss.FFFF}!");}
}/// <summary>
///  注册表
/// </summary>
public class MyRegistry : Registry
{//无参构造函数public MyRegistry(){//安排任务运行在一个区间//Schedule<MyJob>().ToRunNow().AndEvery(3).Seconds();Schedule(()=>{Console.WriteLine($"schedule:{DateTime.Now:HH:mm:ss.FFFF}");}).ToRunNow().AndEvery(2000).Milliseconds();// 安排任务运行一次,由一个特定的时间间隔延迟。Schedule<MyJob>().ToRunOnceIn(3).Seconds();//安排一个简单的任务在一个特定的时间运行//Schedule(() => Console.WriteLine("Timed Task - Will run every day at 9:15pm: " + DateTime.Now)).ToRunEvery(1).Days().At(21, 15);//安排一个更复杂的行动,立即运行和每月的时间间隔//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<MyJob>().AndThen<MyOtherJob>().ToRunNow().AndEvery(5).Minutes();}
}

运行效果:

从运行效果看,FluentScheduler也是有定时器累计偏差存在,并不是完全精确的时间间隔周期调度。

Github地址:GitHub - fluentscheduler/FluentScheduler: Automated job scheduler with fluent interface for the .NET platform.

文档地址:FluentScheduler

C#作业调度FluentScheduler学习笔记

FluentScheduler定时任务的基本使用

在线Cron表达式生成器

这篇关于C#灵活的任务调度组件FluentScheduler的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/607346

相关文章

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

C#中DrawCurve的用法小结

《C#中DrawCurve的用法小结》本文主要介绍了C#中DrawCurve的用法小结,通常用于绘制一条平滑的曲线通过一系列给定的点,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 如何使用 DrawCurve 方法(不带弯曲程度)2. 如何使用 DrawCurve 方法(带弯曲程度)3.使用Dr

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘