Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建在C#中只执行一次的一次性cron计划?_C#_.net_Cron_Quartz Scheduler_Cronexpression - Fatal编程技术网

如何创建在C#中只执行一次的一次性cron计划?

如何创建在C#中只执行一次的一次性cron计划?,c#,.net,cron,quartz-scheduler,cronexpression,C#,.net,Cron,Quartz Scheduler,Cronexpression,我在C#中使用了cron schedule来创建一个只触发一次作业的应用程序。此代码段正在引发异常, Quartz.dll中发生类型为“Quartz.ScheduleException”的未处理异常 下面是我的代码: class Program { static void Main(string[] args) { Test(); } public static void Test() { ISchedulerFactor

我在C#中使用了cron schedule来创建一个只触发一次作业的应用程序。此代码段正在引发异常, Quartz.dll中发生类型为“Quartz.ScheduleException”的未处理异常

下面是我的代码:

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");
    }
}
类程序
{
静态void Main(字符串[]参数)
{
Test();
}
公共静态无效测试()
{
isSchedulerFactory schedulerFactory=新StdSchedulerFactory();
isScheduler scheduler=schedulerFactory.GetScheduler();
IJobDetail jobDetail=JobBuilder.Create()
.WithIdentity(“测试作业”)
.Build();
Console.WriteLine(DateBuilder.DateOf(16,30,00,24,220015));
//ITrigger trigger=TriggerBuilder.Create()
//.ForJob(作业详细信息)
//.WithCronSchedule(“0 0 12 20 4?*”)
//.WithIdentity(“测试触发器”)
//.StartNow()
//.Build();
ITrigger trigger=TriggerBuilder.Create()
.带说明(“一次”)
.WithSimpleSchedule(x=>x.RepeatForever().WithRepeatCount(1))
.StartAt(DateBuilder.DateOf(12,43,00,26,2,2015))
.Build();
ScheduleJob(作业详细信息,触发器);
scheduler.Start();
}
}
内部类SatellitePaymentGenerationJob:IJob
{
public void Execute(IJobExecutionContext上下文)
{
控制台写入线(“测试”);
}
}

我相信,我安排只执行一次的方式导致了这个问题。请给出建议。

您仍然需要一个时间表
  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();