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秒重复一次。"消息。我无法在谷歌上搜索类似的东西,但我几乎可以肯定,我不是第一个有这个想法的人,也许,已经有了实现。如果您想开发某种显示触发器或作业状态/详细信息的作业管理器,这将非常有用。这不是一项首要任务,所以如果没有现有的实现,我不想在这方面投入太多精力。

Quartz中是否有一个有意义的ITrigger.ToString()方法

不确定它是否适用于简单计划。然而,如果您使用cron表达式构建您的时间表,那么您可以使用cron表达描述符,它接受cron表达式,并完全按照您的要求执行:

var cronExpression = "40 * * * * ?";
ITrigger trigger = TriggerBuilder.Create()
        .WithCronSchedule(cronExpression)
        .Build();
var humanReadableString = ExpressionDescriptor.GetDescription(cronExpression);
// humanReadableString = "Every 40 seconds"

可作为NuGet包提供。