CronExpressions - любые библиотеки для их создания/преобразования их в удобочитаемую форму?

Я использую Quartz.NET, и мой планировщик в значительной степени полагается на использование выражения cron - например, те, которые подробно описаны в этой ссылке:

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

В идеале я хотел бы, чтобы 2 сценария стали возможными (1-й, вероятно, очень сложный и с меньшей вероятностью будет что-то там для него)

1: Возможность для пользователя создавать выражение cron в форме ASP.NET, где они выбирают минуты, часы, дни и т.д.

2: Возможность превратить выражение cron в короткую строку, такую ​​как "Every {x} minutes в пятницу" или "At {x} o clock в последний день каждого месяца"

Я начал писать свои собственные версии, но это очень сложная задача, и мне бы хотелось узнать там библиотеку или даже дать вам какие-то подсказки и советы.

Примечание. Если для этого нет ничего, и я (относительно) успешно создал код, я с удовольствием поделился бы источником, если кто захочет его.

Ответы

Ответ 2

Используя последнюю версию Quartz.NET (2.1 на момент написания этой статьи), вы можете получить выражение Cron с помощью CronScheduleBuilder.

Получение выражения для ежедневных заданий:

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

Ответ 3

Я закончил использование этого jquery-плагина, который обеспечивает приятный интерфейс, а затем с помощью скрытого поля, чтобы сохранить его в базе данных в .net/С#.

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

Это хорошо работает для меня. Возможно, вам нужно будет проверить, что вы устанавливаете секунды в начале строки на "0", хотя, если использовать quartz.net, хотя, как и я, этот плагин не поддерживает секунды.

Ответ 4

Я использовал NCrontab некоторое время назад http://www.raboof.com/Projects/NCrontab/

Но, похоже, он не переводит его в Human Readable...

Ответ 5

Кто-то спросил вопрос тот же несколько месяцев назад.
Я никогда не мог найти что-то подобное. Я закончил свой собственный "конфигуратор", но мои требования были довольно простыми.