我是石英调度程序的新手,它比我需要的更全面。
我想要的是每小时运行一次35分钟的任务,无论应用程序何时启动。
显然这可以通过cron作业完成。我到目前为止的代码是
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
IJobDetail hourlyJob = JobBuilder.Create<Hourly>()
.WithIdentity("hourlyJob", "Jobs")
.Build();
ITrigger hourlyJobTrigger = TriggerBuilder.Create()
.WithIdentity("hourlyJobTrigger", "Jobs")
.StartNow()
.WithCronSchedule("59 0 0 ? * * *")
.Build();
await scheduler.ScheduleJob(hourlyJob, hourlyJobTrigger);
根据我的理解,这应该使得任务在每分钟的第59秒(为了测试目的)运行。但是,似乎并没有贬低。
答案 0 :(得分:1)
你可以用下一个cron表达式
来做0 35 0/1 ? * * *
这个cron表达意味着它每天会在35分钟内触发每小时。
我们的代码将是
ITrigger hourlyJobTrigger = TriggerBuilder.Create()
.WithIdentity("hourlyJobTrigger", "Jobs")
.StartNow()
.WithCronSchedule("0 35 0/1 ? * * *")
.Build();