Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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# Quartz.Net-使用JobFactory时如何分配触发器_C#_Quartz.net_Quartz.net 2.0 - Fatal编程技术网

C# Quartz.Net-使用JobFactory时如何分配触发器

C# Quartz.Net-使用JobFactory时如何分配触发器,c#,quartz.net,quartz.net-2.0,C#,Quartz.net,Quartz.net 2.0,好的,这是一个新手问题,我在网上搜索没有找到任何线索,这是我的问题: 在示例中,通常使用IScheduler.ScheduleJob(job,trigger)来触发和调度作业。现在我使用了JobFactory,我尝试使用ischedulejob.ScheduleJob(trigger),但以触发器的相关作业名称不能为空而结束 以下是我的简化代码: 工作 class DummyJob : IJob { public void Execute(IJobExecutionContext con

好的,这是一个新手问题,我在网上搜索没有找到任何线索,这是我的问题:

在示例中,通常使用
IScheduler.ScheduleJob(job,trigger)
来触发和调度作业。现在我使用了JobFactory,我尝试使用
ischedulejob.ScheduleJob(trigger)
,但以触发器的相关作业名称不能为空而结束

以下是我的简化代码:

工作

class DummyJob : IJob
{
    public void Execute(IJobExecutionContext context)
    {
        Console.WriteLine("executed");
    }
}
工作工厂

class JobFactory : IJobFactory
{
    public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
    {
        return new DummyJob();
    }
}
主程序

class Program
{
    static void Main(string[] args)
    {
        ISchedulerFactory sf = new StdSchedulerFactory();
        IScheduler sc = sf.GetScheduler();

        ITrigger trigger = TriggerBuilder.Create()
            .ForJob()
            .StartAt(DateTime.Now.AddSeconds(5))
            .Build();

        sc.JobFactory = new JobFactory();
        sc.ScheduleJob(trigger);
        sc.Start();

        Console.WriteLine("waiting...");
        Console.ReadLine();
        sc.Shutdown();
    }
}

有什么想法吗?

就日程安排而言,我认为你不应该因为使用自己的JobFactory而做任何不同的事情

您的主程序无效,因为它不知道您要安排的作业

您的示例可能过于简化,没有给出一个清晰的概念,也没有给出您试图通过JobFactory实现的目标,但也许值得指出的是,JobFactory的目的不是指定要运行的作业,但要指定特定作业的启动方式,则需要bundle.JobDetail包含有关运行哪个作业的信息