• .NET 全能 Cron 表达式解析库(支持 Cron 所有特性)


    前言

    今天大姚给大家分享一个.NET 全能 Cron 表达式解析类库,支持 Cron 所有特性:TimeCrontab。

    Cron表达式介绍

    Cron表达式是一种用于配置定时任务的时间表达式。它由一系列字段组成,每个字段代表任务在不同时间维度的调度规则。Cron 表达式常用于各种系统中,如操作系统的定时任务、应用程序的定时调度、数据备份等。

    项目特点

    • 支持 Cron 所有特性
    • 超高性能
    • 易拓展
    • 很小,仅 4KB
    • 无第三方依赖
    • 开源、跨平台
    • 高质量代码和良好单元测试
    • 支持.NET Framework 3.5+及后续版本

    项目源代码

    项目安装

    创建一个名为TimeCrontabExercise的.NET 8 控制台应用。

    搜索:TimeCrontab NuGet包安装。

     

    快速入门

    using TimeCrontab;

    namespace TimeCrontabExercise
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //常规格式:分 时 天 月 周
                var crontab = Crontab.Parse("* * * * *");
                var nextOccurrence = crontab.GetNextOccurrence(DateTime.Now);

                //支持年份:分 时 天 月 周 年
                var crontab1 = Crontab.Parse("* * * * * *", CronStringFormat.WithYears);
                var nextOccurrence1 = crontab1.GetNextOccurrence(DateTime.Now);

                //支持秒数:秒 分 时 天 月 周
                var crontab2 = Crontab.Parse("* * * * * *", CronStringFormat.WithSeconds);
                var nextOccurrence2 = crontab2.GetNextOccurrence(DateTime.Now);

                //支持秒和年:秒 分 时 天 月 周 年
                var crontab3 = Crontab.Parse("* * * * * * *", CronStringFormat.WithSecondsAndYears);
                var nextOccurrence3 = crontab3.GetNextOccurrence(DateTime.Now);

                // Macro 字符串
                var secondly = Crontab.Parse("@secondly"); //每秒 [* * * * * *]
                var minutely = Crontab.Parse("@minutely"); //每分钟 [* * * * *]
                var hourly = Crontab.Parse("@hourly"); //每小时 [0 * * * *]
                var daily = Crontab.Parse("@daily"); //每天 00:00:00 [0 0 * * *]
                var monthly = Crontab.Parse("@monthly"); //每月 1 号 00:00:00 [0 0 1 * *]
                var weekly = Crontab.Parse("@weekly"); //每周日 00:00:00 [0 0 * * 0]
                var yearly = Crontab.Parse("@yearly"); //每年 1 月 1 号 00:00:00 [0 0 1 1 *]
                var workday = Crontab.Parse("@workday"); //每周一至周五 00:00:00 [0 0 * * 1-5]
            }
        }
    }

    项目源码地址

    更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

    https://gitee.com/dotnetchina/TimeCrontab

    优秀项目和框架精选

    该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

    https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

    DotNetGuide技术社区交流群

    • DotNetGuide技术社区是一个面向.NET开发者的开源技术社区,旨在为开发者们提供全面的C#/.NET/.NET Core相关学习资料、技术分享和咨询、项目推荐、招聘资讯和解决问题的平台。
    • 在这个社区中,开发者们可以分享自己的技术文章、项目经验、遇到的疑难技术问题以及解决方案,并且还有机会结识志同道合的开发者。
    • 我们致力于构建一个积极向上、和谐友善的.NET技术交流平台,为广大.NET开发者带来更多的价值和成长机会。

    欢迎加入DotNetGuide技术社区微信交流群👪

  • 相关阅读:
    《Ubuntu20.04环境下的ROS进阶学习1》
    在线客服系统源码开发实战总结:需求分析及前端代码基本技术方案
    【网络服务&数据库教程】10 MySQL 基础
    web前端-JQuery
    2023年深圳等保测评机构名称以及地址汇总
    BigDecimal运算使用方法(附简单案例)
    带你玩转序列模型之seq2seq模型&定向(集束)搜索
    Spring Cloud 学习纪要一:Eureka
    蓄电池智能监控系统,蓄电池智能监控系统的作用
    从408改考自主命题,211贵州大学考研改考
  • 原文地址:https://www.cnblogs.com/Can-daydayup/p/18048555