c# - 如何创建在 Quartz 中等待的触发器

我创建了一个工作和一个触发器

var jobKey = new JobKey("awesome job", "awesome group");
q.AddJob<HelloWorldJob>(jobKey, j => j
.WithDescription("my awesome job"));

q.AddTrigger(opts => opts
    .ForJob(jobKey)
    .WithIdentity("HelloWorldJob-trigger")
    .WithSimpleSchedule(x => x.WithIntervalInSeconds(5))

我可以在这样的控制器中调用它

var scheduler = await schedulerFactory.GetScheduler();

    await scheduler.TriggerJob(jobKey);

但问题是作业在应用程序启动时开始

有没有办法让触发器保持空闲?所以我可以稍后手动触发它?

我发现了一些类似的问题,建议在 StartAt 方法中放入 date 很长一段时间,但是这个问题很老,也许有更合适的方法吗?

回答1

不要添加触发器,当您想手动触发作业时调用 IScheduler.TriggerJob。在调度程序 init 中将作业添加为持久作业,因此它不需要触发器引用它。

相似文章