C# 使用 Quartz 驗證 cron 排程(取得下次執行時間)

使用 Quartz.NET 建立了任務管理(排程)系統後,接下來會遇到一個很大的問提是 cron 格式到底有沒有正確?(當然也可以不要使用 cron) 不過還好在 Quartz 中已經內建了 cron 的檢查方法了,要檢查非常的容易:
    
string cron = "0 * * * * ? "; // 每分鐘執行一次
bool isValid = CronExpression.IsValidExpression(cron);
Console.WriteLine($"Cron is valid: {isValid}"); // Cron is valid: True
    

知道 cron 格式正確後,也會需要知道排程下次是什麼時候執行,確保沒有設定錯誤。
取得下次執行時間:
    
string cron = "0 * * * * ? "; // 每分鐘執行一次
CronExpression cronExpression = new CronExpression(cron);
DateTimeOffset? nextValidTime = cronExpression.GetNextValidTimeAfter(DateTimeOffset.Now)?.ToLocalTime();

Console.WriteLine($"Next valid time is {nextValidTime}");
// Next valid time is 2023/7/5 下午 11:13:00 +08:00
    

留言