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。
我的意思是如果我有这样的触发器:
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。