Quartz中是否有一个有意义的ITrigger.ToString()方法
本文关键字:ToString 方法 ITrigger 是否 有一个 有意义 Quartz | 更新日期: 2023-09-27 18:20:35
我的意思是,如果我有一个触发器,比如:
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(40)
.RepeatForever())
.Build();
我希望能够对触发器的时间表进行有意义的(甚至本地化的)描述。例如,当我调用trigger.ToMeaningfulString()
时,我希望看到"每40秒重复一次。"消息。我无法在谷歌上搜索类似的东西,但我几乎可以肯定,我不是第一个有这个想法的人,也许,已经有了实现。如果您想开发某种显示触发器或作业状态/详细信息的作业管理器,这将非常有用。这不是一项首要任务,所以如果没有现有的实现,我不想在这方面投入太多精力。
不确定它是否适用于简单计划。然而,如果您使用cron表达式构建您的时间表,那么您可以使用cron表达描述符,它接受cron表达式,并完全按照您的要求执行:
var cronExpression = "40 * * * * ?";
ITrigger trigger = TriggerBuilder.Create()
.WithCronSchedule(cronExpression)
.Build();
var humanReadableString = ExpressionDescriptor.GetDescription(cronExpression);
// humanReadableString = "Every 40 seconds"
可作为NuGet包提供。