使用Quartz.net安排多个计划任务

时间:2016-12-26 19:37:16

标签: c# asp.net cron quartz-scheduler quartz.net

我正在尝试设置2个以上的计划任务,以便在第一个任务开始时执行4个小时的差异。为此我正在使用Quartz.NET库,如下所示:

ITrigger firstTrigger = TriggerBuilder.Create()
                     .WithIdentity("Trigger1")
                     .StartNow()
                     .WithCronSchedule("0 0 0/4 * * ?")
                     .ForJob("Job1")
                     .Build();

IJobDetail secondJob = JobBuilder.Create<StoreAnalyticsUsersUpdate>()
               .WithIdentity("Job2")
               .Build();

ITrigger secondTrigger = 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(firstJob, firstTrigger);
sc.ScheduleJob(secondJob, secondTrigger);
sc.Start();

我已编写此代码用于测试目的,只是为了查看任务是否正常运行。在我运行我的应用程序之后,没有任何一个计划任务...

P.S。我在Global.asax类中调用该方法,这不是问题...

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    JobScheduler.StartCompetitorResearchUpdate(); // this is the method for the above code
}

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

in

.StartAt(DateTimeOffset.UtcNow).WithCronSchedule("0 0 0/4 * * ?").ForJob("Job2").Build();

使用

进行测试
.StartAt(DateTimeOffset.UtcNow).WithCronSchedule("0 0 0/4 * * ?").ForJob(secondJob).Build();