Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开源强大的 .NET 全能 Cron 表达式解析库,支持 Cron 所有特性

开源强大的 .NET 全能 Cron 表达式解析库,支持 Cron 所有特性

作者头像
郑子铭
发布于 2025-02-18 06:06:50
发布于 2025-02-18 06:06:50
940
举报
欢迎来到 Dotnet 工具箱!在这里,你可以发现各种令人惊喜的开源项目!

Cron 表达式

推荐一个 .NET 全能 Cron 表达式解析库,他支持 Cron 所有特性。通过 Nuget 包引入到项目中,源代码极小,只有 4kB!。

这是一个开源免费的任务调度工具,它用于定期执行任务。您可以实现定时备份、清理文件或发送邮件等。

功能特性

  • 支持 Cron 所有特性
  • 轻量级,超高性能
  • 易拓展,易集成
  • 轻量级,仅 4KB
  • 跨平台支持,并且无第三方依赖
  • 高质量的代码和完备的单元测试

快速入门 通过 .NET CLI 集成到项目中 dotnet add package TimeCrontab 常规格式:分 时 天 月 周 var crontab = Crontab.Parse("* * * * *"); var nextOccurrence = crontab.GetNextOccurrence(DateTime.Now); 支持年份:分 时 天 月 周 年 var crontab = Crontab.Parse("* * * * * *", CronStringFormat.WithYears); var nextOccurrence = crontab.GetNextOccurrence(DateTime.Now); 支持秒数:秒 分 时 天 月 周 var crontab = Crontab.Parse("* * * * * *", CronStringFormat.WithSeconds); var nextOccurrence = crontab.GetNextOccurrence(DateTime.Now); 支持秒和年:秒 分 时 天 月 周 年 var crontab = Crontab.Parse("* * * * * * *", CronStringFormat.WithSecondsAndYears); var nextOccurrence = crontab.GetNextOccurrence(DateTime.Now); 获取休眠差实现简单定时任务 // 阻塞方式 var crontab = Crontab.Parse("* * * * * *", CronStringFormat.WithSeconds); while(true) { Thread.Sleep(crontab.GetSleepMilliseconds(DateTime.Now)); Console.WriteLine(DateTime.Now.ToString("G")); } // 无阻塞方式 var crontab = Crontab.Parse("* * * * * *", CronStringFormat.WithSeconds); Task.Factory.StartNew(async () => { while (true) { await Task.Delay(crontab.GetSleepMilliseconds(DateTime.Now)); Console.WriteLine(DateTime.Now.ToString("G")); } }, TaskCreationOptions.LongRunning); 可以看到,TimeCrontab 轻量级,并且易于使用,功能也非常丰富,并且开源免费,感兴趣的同学可以去关注下。

项目地址

https://gitee.com/dotnetchina/TimeCrontab

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
.NET 全能 Cron 表达式解析库(支持 Cron 所有特性)
今天大姚给大家分享一个.NET 全能 Cron 表达式解析类库,支持 Cron 所有特性:TimeCrontab。
追逐时光者
2024/03/03
2880
.NET 全能 Cron 表达式解析库(支持 Cron 所有特性)
一篇学会cron表达式
Cron表达式是一种用于定义定时任务的格式化字符串。它被广泛用于Unix、Linux和类Unix系统中,用于在指定的时间执行预定的任务。Cron表达式由6个字段组成,每个字段通过空格分隔开。
GoodTime
2023/11/28
1.2K0
一篇学会cron表达式
C#多线程(13):任务基础①
.NET 中,有三种异步编程模式,分别是基于任务的异步模式(TAP)、基于事件的异步模式(EAP)、异步编程模式(APM)。
痴者工良
2021/04/26
9810
模拟实现.NET中的Task机制:探索异步编程的奥秘
.NET 中使用Task可以方便地编写异步程序,为了更好地理解Task及其调度机制,接下来模拟Task的实现,目的是搞清楚:
郑子铭
2023/11/14
3250
模拟实现.NET中的Task机制:探索异步编程的奥秘
c#异步编程-Task(一)
大家好,本次继续分享自己的学习经历。本文主要分享异步编程中Task的使用,如果能帮助大家希望多多关注文章末尾的微信公众号和知乎三连。各位举手之劳是对我更新技术文章最大的支持。
JusterZhu
2022/12/07
7670
并行编程和任务(二)
  上一篇我们主要介绍了并行编程相关的知识,这一节我们继续介绍关于任务相关的知识。为了更好的控制并行操作,我们可以使用System.Threading.Tasks中的Task类。我们首先来了解是什么是任务——任务表示将要完成的一个或某个工作单元,这个工作单元可以在单独线程中运行,也可以使用同步方式启动运行(需要等待主线程调用)。为什么使用任务呢?——任务不仅可以获得一个抽象层(将要完成的工作单元)、还可以对底层的线程运行进行更好更多的控制(任务的运行)。
小世界的野孩子
2019/11/10
7110
NewLife.Net——网络压测单机1.88亿tps
NewLife.Net压力测试,峰值4.2Gbps,50万pps,消息大小24字节,消息处理速度1.88亿tps! 共集合20台高配ECS参与测试,主服务器带宽6Gbps、100万pps,16核心64G内存。另外19台共模拟400个用户连接,13*16+6*32=400,每用户发送2000万个消息,服务端收到后原样返回。 有些同学比较着急,觉得前面两篇有点小儿科,群友就说,上数字吧! 我们在2017.4.1做了一个极限并发测试,奔着单机100万并发,实际上只得到了84.5万,这次补一个吞吐量的压力测试好了。
大石头
2018/05/28
6800
ScheduleMaster新特性之延时任务初体验
ScheduleMaster在上个月底更新到了2.0版本,在功能和代码以及文档上都往前跨了很大一步,详细信息可以参考这篇文章:.NET Core下的开源分布式任务调度系统ScheduleMaster-v2.0低调发布
HOHO
2020/06/19
6700
ScheduleMaster新特性之延时任务初体验
NewLife.Net——网络压测单机2266万tps
NewLife.Net压力测试,峰值4.2Gbps,50万pps,消息大小24字节,消息处理速度2266万tps!
大石头
2018/07/31
5730
NewLife.Net——网络压测单机2266万tps
Cron Job 表达式解析
一遍又一遍地执行相同的任务可能会很麻烦。 Cron Job 让用户可以自动执行任务。 这节省了宝贵的时间,让用户可以专注于其他重要任务。
用户3871926
2023/03/20
2.1K0
Go 每日一库之 cron
cron一个用于管理定时任务的库,用 Go 实现 Linux 中crontab这个命令的效果。之前我们也介绍过一个类似的 Go 库——gron。gron代码小巧,用于学习是比较好的。但是它功能相对简单些,并且已经不维护了。如果有定时任务需求,还是建议使用cron。
用户7731323
2020/09/08
2.8K0
关于同步方法里面调用异步方法的探究
我在写代码的时候(.net core)有时候会碰到void方法里,调用async方法并且Wait,而且我还看到别人这么写了。而且我这么写的时候,编译器没有提示任何警告。但是看了dudu的文章:一码阻塞,万码等待:ASP.NET Core 同步方法调用异步方法“死锁”的真相 了解了,这样写是有问题的。但是为什么会有问题呢?我又阅读了dudu文章里提到的一篇博文:.NET Threadpool starvation, and how queuing makes it worse 加上自己亲手实验,写下自己的理解,算是对dudu博文的一个补充和丰富吧。
ShenduCC
2020/05/01
2.7K0
.NET Core多线程 (1) Thread与Task
.NET Core中加入了本地队列,加入了本地队列,降低了锁竞争,并提高了线程的利用率。
Edison Zhou
2023/08/09
6150
.NET Core多线程 (1) Thread与Task
pycron:小而美的定时任务调度库
在一个深夜的运维现场,服务器突然宕机,而我正好在处理一个需要定期执行的数据备份任务。这让我想起了一个小而美的Python库:pycron。它不仅让我摆脱了crontab的束缚,还提供了更灵活的定时任务控制能力。
luckpunk
2025/01/15
1810
pycron:小而美的定时任务调度库
了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低
.NET Framework 4.5 开始引入 Task.Run,它可以很方便的帮助我们使用 async / await 语法,同时还使用线程池来帮助我们管理线程。以至于我们编写异步代码可以像编写同步代码一样方便。
walterlv
2020/02/10
3.5K0
线程池ThreadPool及Task调度机制分析
近1年,偶尔发生应用系统启动时某些操作超时的问题,特别在使用4核心Surface以后。笔记本和台式机比较少遇到,服务器则基本上没有遇到过。
大石头
2018/07/31
1.6K0
线程池ThreadPool及Task调度机制分析
.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件 (Timer 优化版)
在上个月写过一篇 .NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件 的文章,当时 CronSchedule 的实现是使用了,每个服务都独立进入到一个 while 循环中,进行定期扫描是否到了执行时间来实现的,但是那个逻辑有些问题,经过各位朋友的测试,发现当多个任务的时候存在一定概率不按照计划执行的情况。
乌拉栋
2022/10/28
3890
.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件 (Timer 优化版)
线程详解——c#
使用线程,我们需要引用System.Threading命名空间。创建一个线程最简单的方法就是在 new 一个 Thread,并传递一个ThreadStart委托(无参数)或ParameterizedThreadStart委托(带参数),如下:
vv彭
2020/12/16
4510
线程详解——c#
.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件
常用的定时任务组件有 Quartz.Net 和 Hangfire 两种,这两种是使用人数比较多的定时任务组件,个人以前也是使用的 Hangfire ,慢慢的发现自己想要的其实只是一个能够根据 Cron 表达式来定时执行函数的功能,Quartz.Net 和 Hangfire 虽然都能实现这个目的,但是他们都只用来实现 Cron表达式解析定时执行函数就显得太笨重了,所以想着以 解析 Cron表达式定期执行函数为目的,编写了下面的一套逻辑。
乌拉栋
2022/10/28
1.2K0
.NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件
Cron表达式
源码地址:http://download.csdn.net/download/xushaonian/5790307
跟着阿笨一起玩NET
2018/09/19
4.2K1
相关推荐
.NET 全能 Cron 表达式解析库(支持 Cron 所有特性)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档