我正在使用Quartz.NET,而我的调度程序在很大程度上依赖于使用cron表达式 - 例如此链接中详述的那些:
http://quartznet.sourceforge.net/tutorial/lesson_6.html
理想情况下,我希望这两种方案成为可能(第一种情况可能很困难,并且不太可能成为它的任何东西)
1:用户在ASP.NET表单上构建cron表达式的能力,他们选择哪些分钟,小时,天等
2:将cron表达式转换为短字符串的能力,例如“每个星期五{x}分钟”或“每个月最后一天的{x}时钟”
我已经开始编写我自己的这些版本,但这是一项非常繁重的任务,我很想知道那里有一个图书馆,甚至可以为你们提供任何提示和技巧。
注意:如果没有任何内容可以解决这个问题,并且我(相对)成功创建了代码,如果有人想要,我会很乐意分享来源。
答案 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)