gpt4 book ai didi

c# - 创建一个暂停的触发器

转载 作者:太空狗 更新时间:2023-10-30 01:20:39 24 4
gpt4 key购买 nike

是否可以在暂停状态下向调度程序添加触发器?我发现如果我不指定开始时间,它将立即开始。

除了立即调用 scheduler.PauseJob 是否可以通过其他方式完成?

var trigger = TriggerBuilder.Create()
.ForJob(job)
.WithSimpleSchedule(schedule => schedule.WithIntervalInMinutes(1).RepeatForever())
.Build();

scheduler.ScheduleJob(job, trigger);

// Pause job immediately
scheduler.PauseJob(job.Key);

最佳答案

实际上可以使用触发器组来做到这一点。您只需要暂停一个特定的触发器组,然后创建一个触发器属于该组的作业。

// pauses the group, if it isn't already
scheduler.PauseTriggers(GroupMatcher<TriggerKey>.GroupEquals("PausedGroup"));

var job = JobBuilder.Create<MyJob>().WithIdentity(jobName).Build();

var trigger = TriggerBuilder.Create()
.ForJob(job)
.WithIdentity(Guid.NewGuid().ToString(), "PausedGroup")
.WithSimpleSchedule(schedule => schedule.WithIntervalInMinutes(1).RepeatForever())
.Build();

scheduler.ScheduleJob(job, trigger);

然后要恢复工作,用不同的组重新安排每个触发器:

foreach (var oldTrigger in scheduler.GetTriggers(new JobKey(jobName)))
{
// clone the old trigger with new group name
var newTrigger = oldTrigger.GetTriggerBuilder()
.WithIdentity(oldTrigger.Key.Name) // uses default trigger group name
.Build();

// not a typo, the method to reschedule a trigger is called "RescheduleJob" for some reason
scheduler.RescheduleJob(oldTrigger.Key, newTrigger);
}

关于c# - 创建一个暂停的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18363544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com