gpt4 book ai didi

.net - 在 Quartz.Net 中安排多个作业

转载 作者:行者123 更新时间:2023-12-01 19:30:17 24 4
gpt4 key购买 nike

我是 Quartz.Net 的初学者。如何在调度程序中添加多个作业?

为了学习,我正在使用控制台应用程序。

最佳答案

如果您是 Quartz.Net 的新手,我建议您从 Jay Vilalta 的 Blog 开始和老one您可以在其中找到有关 Quartz.Net 的大量教程和有用信息。

如果您想在控制台应用程序中安排多个作业,您只需调用Scheduler.ScheduleJob即可。 (IScheduler) 传递您之前创建的作业和触发器:

IJobDetail firstJob = JobBuilder.Create<FirstJob>()
.WithIdentity("firstJob")
.Build();

ITrigger firstTrigger = TriggerBuilder.Create()
.WithIdentity("firstTrigger")
.StartNow()
.WithCronSchedule("0 * 8-22 * * ?")
.Build();


IJobDetail secondJob = JobBuilder.Create<SecondJob>()
.WithIdentity("secondJob")
.Build();

ITrigger secondTrigger = TriggerBuilder.Create()
.WithIdentity("secondTrigger")
.StartNow()
.WithCronSchedule("0 0/2 * 1/1 * ? *")
.Build();

Scheduler.ScheduleJob(firstJob, firstTrigger);
Scheduler.ScheduleJob(secondJob, secondTrigger);

您可以下载工作示例 here .

更新:

如果您想暂停和/或重新启 Action 业,您可以使用 PauseJobResumeJob (您可以使用 PauseTriggerResumeTrigger 对触发器执行相同的操作)。

这是一个示例:

private static void Test001(IScheduler Scheduler)
{
IJobDetail firstJob = JobBuilder.Create<FirstJob>()
.WithIdentity("firstJob")
.Build();

ITrigger firstTrigger = TriggerBuilder.Create()
.WithIdentity("firstTrigger")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInSeconds(1).RepeatForever())
.Build();


IJobDetail secondJob = JobBuilder.Create<SecondJob>()
.WithIdentity("secondJob")
.Build();

ITrigger secondTrigger = TriggerBuilder.Create()
.WithIdentity("secondTrigger")
.StartNow()
.WithSimpleSchedule(x=>x.WithIntervalInSeconds(1).RepeatForever())
.Build();


Scheduler.ScheduleJob(firstJob, firstTrigger);
Scheduler.ScheduleJob(secondJob, secondTrigger);

for (int i = 0; i < 300; i++)
{
System.Threading.Thread.Sleep(100);
if (i == 100)
{
Scheduler.PauseJob(new JobKey("firstJob"));
}
else if (i == 200)
{
Scheduler.ResumeJob(new JobKey("firstJob"));
}
}
}

关于.net - 在 Quartz.Net 中安排多个作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21527841/

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