【问题标题】:How can I create a one time cron schedule that would execute only once in C#?如何创建一个只能在 C# 中执行一次的一次性 cron 计划?
【发布时间】:2015-02-26 17:55:25
【问题描述】:

我在 C# 中使用了 cron 计划来创建一个应该只触发一次作业的应用程序。这段代码抛出异常, Quartz.dll 中发生了“Quartz.SchedulerException”类型的未处理异常

下面是我的代码:

class Program
{
    static void Main(string[] args)
    {
        Test();
    }

    public static void Test()
    {
        ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
        IScheduler scheduler = schedulerFactory.GetScheduler();

        IJobDetail jobDetail = JobBuilder.Create<SatellitePaymentGenerationJob>()
            .WithIdentity("TestJob")
            .Build();
        Console.WriteLine(DateBuilder.DateOf(16, 30, 00, 24, 2, 2015));
        //ITrigger trigger = TriggerBuilder.Create()
        //    .ForJob(jobDetail)
        //    .WithCronSchedule("0 0 12 20 4 ? *")
        //    .WithIdentity("TestTrigger")
        //    .StartNow()
        //    .Build();
        ITrigger trigger = TriggerBuilder.Create()
                             .WithDescription("Once")
                             .WithSimpleSchedule(x => x.RepeatForever().WithRepeatCount(1))
                             .StartAt(DateBuilder.DateOf(12, 43, 00, 26, 2, 2015))
                             .Build();

        scheduler.ScheduleJob(jobDetail, trigger);
        scheduler.Start();
    }
}

internal class SatellitePaymentGenerationJob : IJob
{
    public void Execute(IJobExecutionContext context)
    {
        Console.WriteLine("test");
    }
}

我相信我安排只执行一次的方式会导致问题。请指教。

【问题讨论】:

  • 你还需要一个 cronschedule

标签: c# .net cron quartz-scheduler cronexpression


【解决方案1】:
  ITrigger trigger = TriggerBuilder.Create()
                               .WithDescription("Once")
                               .WithSimpleSchedule(x => x
                               .WithIntervalInSeconds(40)
                               .RepeatForever())
                               .StartAt(DateBuilder.DateOf(14, 41, 00, 26, 2, 2015))
                               .EndAt(DateBuilder.DateOf(15, 14, 20))
                               .Build();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2018-05-09
    • 2020-03-03
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多