作业不使用JobChainingJobListener链接

我有我的Quartz调度程序的当前代码:

var scheduler = StdSchedulerFactory.GetDefaultScheduler(); // Job1 var Job1 = JobBuilder.Create().WithIdentity("job1", "group1").Build(); // Job2 var Job2 = JobBuilder.Create().WithIdentity("job2", "group2").Build(); // Triggers ITrigger trigger1 = TriggerBuilder.Create().WithIdentity("trigger1", "group1").StartNow().Build() ITrigger trigger2 = TriggerBuilder.Create().WithIdentity("trigger2", "group2").StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(1).WithRepeatCount(4)).Build(); // JobKeys JobKey jobKey1 = new JobKey("Job1", "group1"); JobKey jobKey2 = new JobKey("Job2", "group2"); // Chain jobs JobChainingJobListener chain = new JobChainingJobListener("testChain"); chain.AddJobChainLink(jobKey1, jobKey2); scheduler.ScheduleJob(Job1, trigger1); scheduler.AddJob(Job2, true); // Global listener here. I am not sure what I have is correct. scheduler.ListenerManager.AddJobListener(chain, GroupMatcher.AnyGroup());` scheduler.Start(); 

(为了澄清,这些工作只是打印到控制台。)

在Quartz网站上,我发现这将添加一个对所有作业感兴趣的JobListener: scheduler.ListenerManager.AddJobListener(chain, GroupMatcher.AnyGroup()); 我不确定这是否等同于全局监听器。

我还发现一些代码,人们已经完成了scheduler.addGlobalJobListener(chain); 在Java中。 c#中有一个等价的方法吗?

我的代码编译并且似乎运行没有错误,但Job2不会触发。 Job1正确打印到控制台。

这里的问题是你第二次拼错了密钥(“Job1”vs“job1”),这导致没有已知的火灾链接。 这是删除了冗余的更新代码示例。

 var scheduler = StdSchedulerFactory.GetDefaultScheduler(); JobKey jobKey1 = new JobKey("job1", "group1"); JobKey jobKey2 = new JobKey("job2", "group2"); var job1 = JobBuilder.Create().WithIdentity(jobKey1).Build(); var job2 = JobBuilder.Create().WithIdentity(jobKey2).StoreDurably(true).Build(); ITrigger trigger1 = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .StartNow() .Build(); JobChainingJobListener chain = new JobChainingJobListener("testChain"); chain.AddJobChainLink(jobKey1, jobKey2); scheduler.ListenerManager.AddJobListener(chain, GroupMatcher.AnyGroup()); scheduler.ScheduleJob(job1, trigger1); scheduler.AddJob(job2, true); scheduler.Start(); 

scheduler.addGlobalJobListener是旧API,是2.x系列的较长部分。 您应该像使用过一样使用ListenerManager。