我有一个处理 Quartz Jobs 的 C# Topshelf windows Service。这些作业存储在数据库中,如下所示:
public class JobConfiguration : IJobConfiguration {
public string Name { get; set; } //ImportService
public string Type { get; set; } //[ClassName, AssemblyName]
public string CronTrigger { get; set; } //example: 0 0 12 * * ?
public string CronMeaning { get; set; } //example: fire at noon every day
}
现在我必须添加一个只被解雇一次的工作(所有其他工作都必须重复)。我的(临时)解决方案是将 CronTrigger 字段保留为 NULL 并使用 SimpleTrigger 而不是 CronTrigger 开始这些作业,例如:
if (JobConfiguration.CronTrigger == Null)
//start job with Quartz SimpleTrigger
else
//start job with Quartz CronTrigger
有没有更好的解决方案来做到这一点?换句话说:是否有一个 CronTrigger 允许您只开始一次工作并且从不重复它。