我有两个使用Quartz.NET库创建的计划任务,如下所示:
public static void StartCompetitorResearchUpdate()
{
IJobDetail competitorResearch = JobBuilder.Create<CompetitorResearchJob>().WithIdentity("Job1").Build();
ITrigger trigger = TriggerBuilder.Create().WithIdentity("Trigger1").StartNow().WithCronSchedule("0 0 0/2 * * ?").ForJob("Job1").Build();
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sc = sf.GetScheduler();
sc.ScheduleJob(competitorResearch, trigger);
sc.Start();
}
public static void StartStoreAnalyticsUpdate()
{
IJobDetail competitorResearch = JobBuilder.Create<StoreAnalyticsUsersUpdate>().WithIdentity("Job2").Build();
ITrigger trigger = TriggerBuilder.Create().WithIdentity("Trigger2").StartAt(DateTimeOffset.UtcNow).WithCronSchedule("0 0 0/4 * * ?").ForJob("Job2").Build();
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sc = sf.GetScheduler();
sc.ScheduleJob(competitorResearch, trigger);
sc.Start();
}
这里的诀窍是,我希望第一个计划任务StartCompetitorResearchUpdate()&lt; =暂停xx分钟(最好是20-30分钟 - 或者第二个工作正在运行),因为第一份工作有时可以每天24小时运行并且需要通过HTTP请求提取大量数据,这就是为什么我需要在第二个运行时暂停第一个数据的原因。
有没有办法实现这个目标?
P.S。第一份工作每2小时运行一次,第2份工作每4小时运行一次......