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

Is there a meaningful ITrigger.ToString() method in Quartz?

我的意思是如果我有这样的触发器:

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

我希望能够对触发器的时间表进行有意义的(甚至本地化的)描述。例如,我想在调用 trigger.ToMeaningfulString() 时看到 "Repeat every 40 seconds." 消息。我不能 google 类似的东西,但我几乎可以肯定我不是第一个想到这个想法的人,也许已经有一个实现了。如果您想开发某种显示触发器或作业 status/details 的作业管理器,这将很有用。这不是最优先的任务,所以如果没有现成的实现,我不想在它上面投入很多精力。

不确定简单时间表是否存在。但是,如果您使用 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