Quartz中有一个有意义的ITrigger.ToString()方法吗?

时间:2015-11-05 10:23:09

标签: c# quartz-scheduler quartz.net

我的意思是如果我有一个触发器:

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

我希望能够获得触发器计划的有意义(甚至是本地化)描述。例如,我希望在拨打trigger.ToMeaningfulString()时看到"每40秒重复一次。" 消息。我不能谷歌这样的东西,但我几乎可以肯定我不是第一个有这个想法的人,也许,已经有了实施。如果您想开发某种将显示触发器或作业状态/详细信息的作业管理器,这将非常有用。这不是一项首要任务,因此如果没有现有的实施方案,我不想在其中投入大量精力。

1 个答案:

答案 0 :(得分:2)

不确定是否存在简单的时间表。但是,如果使用cron表达式构建日程表,则可以使用cron expression descriptor,它采用cron表达式并完全符合您的要求:

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

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

NuGet package提供。