如何安排我的Quartz,除了周六和周日之外每10分钟运行一次

问题描述 投票:1回答:1

我无法自定义我的石英计划程序,除了周六和周日之外每10分钟运行一次。

请告诉我如何定制我的日程表,除了星期六和星期日之外每天每10分钟一次?

public partial class QuartzTest : Form , IJob
    {
        IScheduler sched = null;

        public QuartzTest()
        {
            InitializeComponent();
        }

        public void Execute(IJobExecutionContext context)
        {
            MessageBox.Show("job start");
        }

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

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

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

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

            sched.ScheduleJob(job, trigger);
        }

        private void QuartzTest_FormClosing(object sender, FormClosingEventArgs e)
        {
            sched.Shutdown();
        }
    }

}

请告诉我如何提醒触发器每10分钟后应该触发,也忽略周六和周日。请分享一些帮助我实现目标的例子。谢谢

c# quartz-scheduler
1个回答
3
投票

你可以使用cron触发器。像这样的东西:

var trigger = TriggerBuilder.Create()
    .WithIdentity("myTrigger", "group1")
    .WithCronSchedule("* 0/5 * ? * MON-FRI")
    .ForJob("myJob", "group1")
    .Build();

了解有关cron触发器的更多信息,here。你也可以找到这个tool非常有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.