我們一起聊聊 .NET 全能 Cron 表達式解析庫
作者:大姚
Cron表達式是一種用于配置定時任務(wù)的時間表達式。它由一系列字段組成,每個字段代表任務(wù)在不同時間維度的調(diào)度規(guī)則。Cron 表達式常用于各種系統(tǒng)中,如操作系統(tǒng)的定時任務(wù)、應(yīng)用程序的定時調(diào)度、數(shù)據(jù)備份等。
前言
今天大姚給大家分享一個.NET 全能 Cron 表達式解析類庫,支持 Cron 所有特性:TimeCrontab。
Cron表達式介紹
Cron表達式是一種用于配置定時任務(wù)的時間表達式。它由一系列字段組成,每個字段代表任務(wù)在不同時間維度的調(diào)度規(guī)則。Cron 表達式常用于各種系統(tǒng)中,如操作系統(tǒng)的定時任務(wù)、應(yīng)用程序的定時調(diào)度、數(shù)據(jù)備份等。
- Cron在線表達式生成器:https://cron.ciding.cc/
圖片
項目特點
- 支持 Cron 所有特性
- 超高性能
- 易拓展
- 很小,僅 4KB
- 無第三方依賴
- 開源、跨平臺
- 高質(zhì)量代碼和良好單元測試
- 支持.NET Framework 3.5+及后續(xù)版本
項目源代碼
圖片
項目安裝
創(chuàng)建一個名為TimeCrontabExercise的.NET 8 控制臺應(yīng)用。
圖片
圖片
圖片
搜索:TimeCrontab NuGet包安裝。
圖片
快速入門
using TimeCrontab;
namespace TimeCrontabExercise
{
internal class Program
{
static void Main(string[] args)
{
//常規(guī)格式:分 時 天 月 周
var crontab = Crontab.Parse("* * * * *");
var nextOccurrence = crontab.GetNextOccurrence(DateTime.Now);
//支持年份:分 時 天 月 周 年
var crontab1 = Crontab.Parse("* * * * * *", CronStringFormat.WithYears);
var nextOccurrence1 = crontab1.GetNextOccurrence(DateTime.Now);
//支持秒數(shù):秒 分 時 天 月 周
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]
}
}
}
責任編輯:武曉燕
來源:
追逐時光者