gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:25:21 24 4
gpt4 key购买 nike

好的,这是一个新手问题,我通过网络搜索找不到任何线索,这是我的问题:

从示例中通常使用 IScheduler.ScheduleJob(job, trigger) 安排的触发器和作业现在我使用 JobFactory 我尝试使用 IScheduler.ScheduleJob(trigger) 但是以Trigger相关的Job's name cannot be null异常结束

这是我的简单代码:

工作

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

关于c# - Quartz.Net - 使用 JobFactory 时如何分配触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12380849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com