2015-11-05 3 views
3

Что я имею в виду, если у меня есть триггер, как:Есть ли значимый метод ITrigger.ToString() в Quartz?

ITrigger trigger = TriggerBuilder.Create() 
    .WithSimpleSchedule(x => x 
     .WithIntervalInSeconds(40) 
     .RepeatForever()) 
    .Build(); 

Я хочу, чтобы иметь возможность получить содержательный (может быть, даже локализованное) описание графика триггера. Например, я хочу видеть «Повторять каждые 40 секунд». сообщение когда я вызываю trigger.ToMeaningfulString(). Я не мог сделать что-то подобное, но я почти уверен, что я не первый, кто получил эту идею, и, может быть, уже есть реализация. Это будет полезно в случае, если вы хотите создать своего рода менеджера заданий, который отобразит триггер или статус работы/детали. Это не приоритетная задача, поэтому я не хочу вкладывать в нее много усилий, если не существует существующей реализации.

ответ

2

Не уверен, что он существует для простых графиков. Если вы строите свой график, используя хроны выражения, однако, вы могли бы использовать cron expression descriptor, который принимает выражение хрон и делает именно то, что вы просите:

var cronExpression = "40 * * * * ?"; 
ITrigger trigger = TriggerBuilder.Create() 
     .WithCronSchedule(cronExpression) 
     .Build(); 

var humanReadableString = ExpressionDescriptor.GetDescription(cronExpression); 
// humanReadableString = "Every 40 seconds" 

Доступен как NuGet package.

+0

Спасибо, я расскажу об этом позже, но я думаю, что это может быть именно то, что я искал. – Dmytro

Смежные вопросы