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包含有关运行哪个作业的信息