无论开始时间如何,都要安排每小时35分钟的任务

时间:2018-06-01 19:13:27

标签: c# quartz.net

我是石英调度程序的新手,它比我需要的更全面。

我想要的是每小时运行一次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秒(为了测试目的)运行。但是,似乎并没有贬低。

1 个答案:

答案 0 :(得分:1)

你可以用下一个cron表达式

来做
0 35 0/1 ? * * *

这个cron表达意味着它每天会在35分钟内触发每小时。

我们的代码将是

ITrigger hourlyJobTrigger = TriggerBuilder.Create()
            .WithIdentity("hourlyJobTrigger", "Jobs")
            .StartNow()
            .WithCronSchedule("0 35 0/1 ? * * *")
            .Build();