C#如何在每天的特定时间每天通过Quartz.net开火

时间:2017-02-20 13:19:20

标签: c# quartz.net

我不是在开发电脑之前,但我得到了一个似乎工作的代码。

private void QuartzTest_Load(object sender, EventArgs e)
{
    // construct a scheduler factory
    ISchedulerFactory schedFact = new StdSchedulerFactory();

    // get a scheduler
    IScheduler sched = schedFact.GetScheduler();
    sched.Start();

    IJobDetail job = JobBuilder.Create<LoggingJob>()
        .WithIdentity("myJob", "group1")
        .Build();

    ITrigger trigger = TriggerBuilder.Create()
       .WithDailyTimeIntervalSchedule
         (s =>
            s.WithIntervalInHours(24)
           .OnEveryDay()
           .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(08, 00))
         )
       .Build();

    sched.ScheduleJob(job, trigger);
}
似乎触发器每天早上8点都会触发工作。 任何人都可以确认上述代码每天早上8点都会触发我的日常工作吗?

我问过这样的问题,因为我不是在开发电脑之前所以我无法测试上面的代码它是否可以正常工作?

我也很想知道如何排除星期六和星期日,因此我的日常工作不会开火。在哪里添加日名no以解雇我的日常事务。只有我的日常工作应该从星期一到星期五开火。

感谢

1 个答案:

答案 0 :(得分:1)

只有在工作日才能使用像这样的cron表达式

0 0 8 ? * MON-FRI *

用法描述为here

看起来像你这样

ITrigger trigger = TriggerBuilder.Create()
       .WithCronSchedule("0 0 8 ? * MON-FRI *")
       .Build();

这应该每天早上8点开除,周末除外

您可以使用此网站生成您的cron表达式:http://www.cronmaker.com/