C# 如何在每天的特定时间通过 Quartz.net 触发例程

Mou*_*Mou 3 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);
}
Run Code Online (Sandbox Code Playgroud)

看来触发器每天早上 8:00 都会触发工作。任何人都可以确认上面的代码真的会在每天早上 8:00 触发我的例程吗?

我问这样的问题是因为我没有使用过开发电脑,所以我无法测试上面的代码是否可以正常工作?

我也很想知道如何排除周六和周日,这样我的日常工作就不会很火。在哪里添加日期名称 no 来启动我的例程。只有我的日常工作应该从周一到周五火爆。

谢谢

Mat*_*391 7

要仅在工作日执行此操作,您可以使用像这样的 cron 表达式

0 0 8 ? * MON-FRI *
Run Code Online (Sandbox Code Playgroud)

这里描述了用法

对你来说看起来像这样

ITrigger trigger = TriggerBuilder.Create()
       .WithCronSchedule("0 0 8 ? * MON-FRI *")
       .Build();
Run Code Online (Sandbox Code Playgroud)

除周末外,每天早上 8 点都会触发

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