asp.net-core - 如何强制 Quartz 现在在 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 triggerStartNow()
只是意味着开始计算火灾,它仍然会遵循不是“现在”的时间表。
推荐阅读
- r - R如何创建聚合多个条件的列
- javascript - 按钮删除不删除产品
- reactjs - 如何将 Firebase 数据实时更新到 React 应用程序
- javascript - Javascript:根据 nput type="text" 的值更改 data-target="#"
- php - PHPMailer 无法在实时服务器上发送电子邮件
- javascript - 通过 curl php 传递 google RecaptchaResponsed
- c++ - 如何使用 SOCI 库处理减号运算符?
- react-native - 在视频列表中反应原生视频错误代码 1001
- docker - JupyterHub 生成的 Jupyter Notebook 容器没有外部网络访问权限
- node.js - react app making post request with empty body