I am using Quartz.NET, and my scheduler relies heavily on the use of cron expression's - such as the ones detailed on this link:
http://quartznet.sourceforge.net/tutorial/lesson_6.html
Ideally, I'd like the 2 scenarios to be made possible (the 1st is probably much difficult, and less likely to be anything out there for it)
1: The ability for the user to construct a cron expressio开发者_运维百科n on an ASP.NET form, where they choose which minutes, hours, days etc
2: The ability to turn a cron expression into a short string, such as 'Every {x} minutes on Friday' or 'At {x} o clock on the last day of every month'
I've begun writing my own versions of these, but it's a very hefty task and I'd love to find out there's a library out there, or even to have any hints and tips on this off you guys.
Note: If there is nothing out there for this and I am (relatively) successful in creating the code, I'll gladly share the source if anyone wants it.
I wrote a C# library that does just this. It's called cron-expression-descriptor. https://github.com/bradymholt/cron-expression-descriptor.
Using the latest Quartz.NET (2.1 as of this writing) you can get the Cron expression by using the CronScheduleBuilder.
Getting the expression for daily jobs:
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
I ended up using this jquery plugin which provides a nice interface and then using a hidden field to save this to a database in .net/c#.
http://shawnchin.github.com/jquery-cron/
It works quite well for me. You may need to check that you are setting seconds at the front of the string to "0" though if using quartz.net though like I was as this plugin doesn't support seconds.
I used NCrontab a while ago http://www.raboof.com/Projects/NCrontab/
But it seems it does not translate it to Human Readable...
精彩评论