Cron表达式 - 任何库生成它们/将它们转换成人类可读的形式?

时间:2011-06-23 10:55:33

标签: c# crontab quartz.net cronexpression

我正在使用Quartz.NET,而我的调度程序在很大程度上依赖于使用cron表达式 - 例如此链接中详述的那些:

http://quartznet.sourceforge.net/tutorial/lesson_6.html

理想情况下,我希望这两种方案成为可能(第一种情况可能很困难,并且不太可能成为它的任何东西)

1:用户在ASP.NET表单上构建cron表达式的能力,他们选择哪些分钟,小时,天等

2:将cron表达式转换为短字符串的能力,例如“每个星期五{x}分钟”或“每个月最后一天的{x}时钟”

我已经开始编写我自己的这些版本,但这是一项非常繁重的任务,我很想知道那里有一个图书馆,甚至可以为你们提供任何提示和技巧。

注意:如果没有任何内容可以解决这个问题,并且我(相对)成功创建了代码,如果有人想要,我会很乐意分享来源。

5 个答案:

答案 0 :(得分:31)

我写了一个C#库就是这样做的。它被称为cron-expression-descriptor。 https://github.com/bradymholt/cron-expression-descriptor

答案 1 :(得分:11)

使用最新的Quartz.NET(撰写本文时为2.1),您可以使用CronScheduleBuilder获取Cron表达式。

获取日常工作的表达式:

var t = CronScheduleBuilder.DailyAtHourAndMinute(10, 0).Build() as CronTriggerImpl;
Console.WriteLine(t.CronExpressionString);// This is the actual Cron
Console.WriteLine(t.GetExpressionSummary()); // This is the description of that Cron

答案 2 :(得分:4)

我最终使用了这个jquery插件,它提供了一个很好的界面,然后使用隐藏字段将其保存到.net / c#中的数据库。

http://shawnchin.github.com/jquery-cron/

对我来说效果很好。您可能需要检查您是否将字符串前面的秒设置为“0”,但是如果使用quartz.net,就像我一样,因为此插件不支持秒。

答案 3 :(得分:3)

我刚才用过NCrontab http://www.raboof.com/Projects/NCrontab/

但它似乎没有把它翻译成人类可读......

答案 4 :(得分:1)

几个月前有人问过same问题 我从来没有找到类似的东西 我最终做了自己的“配置器”,但我的要求非常简单。