如何强制 Quartz 现在在 ASP.NET Core 中启动?
Posted
技术标签:
【中文标题】如何强制 Quartz 现在在 ASP.NET Core 中启动?【英文标题】:How to force Quartz to start now in ASP.NET Core? 【发布时间】:2021-12-13 17:54:30 【问题描述】:我有一个由 Quartz 在 ASP.NET Core 中安排的作业,每 15 分钟运行一次。
我想最初运行它(强制 Quartz 现在启动)。
我使用以下代码,但它最初并没有运行作业并等待 15 分钟开始。
.StartNow()
好像不起作用?
public class JobSchedulerSimple
public static async Task StartSimpleSync()
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = await sf.GetScheduler();
IJobDetail job = JobBuilder.Create<FileJob>()
.WithIdentity("ID", "ID")
.Build();
ITrigger trigger = TriggerBuilder.Create().WithIdentity("StartSimpleSync", "ID")
.StartNow()
.WithCronSchedule("0 0/15 * * * ?")
.Build();
await sched.ScheduleJob(job, trigger);
await sched.Start();
【问题讨论】:
【参考方案1】:您可以致电await sched.TriggerJob(job.Key);
,这将创建一个具有立即触发时间的简单触发器,并在后台运行一次行为。
对于 cron trigger StartNow()
只是意味着开始计算火灾,它仍然会遵循不是“现在”的时间表。
【讨论】:
以上是关于如何强制 Quartz 现在在 ASP.NET Core 中启动?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC5+EF6+EasyUI 后台管理系统(84)-Quartz 作业调度用法详解一
在 Asp.NET core 中触发 Quartz 作业时释放上下文
ASP.NET Core2.2+Quartz.Net 实现web定时任务