如何强制 Quartz 在 ASP.NET Core 中立即启动?

How to force Quartz to start now in ASP.NET Core?

我有一个作业由 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();
    }
}

您可以调用 await sched.TriggerJob(job.Key); 这将创建一个具有即时触发时间和 运行 幕后行为的简单触发器。

对于 cron trigger StartNow() 只是意味着开始计算火灾,它仍然会遵循不是“现在”的时间表。