Quartz.Net - 更新/删除作业/触发器

Luk*_*uke 1 c# scheduled-tasks quartz.net

我正在使用 Quartz 提取最新任务(从另一个来源),然后将其添加为作业,为每个任务创建触发器等。- 简单的。

然而,有时任务会发生变化(因此它们已经存在)。因此我想更改它(让我们说保持简单Description。下面的代码使用给定日期更新特定任务的描述。

private static void SetLastPull(DateTime lastPullDateTime)
{
  var lastpull = sched.GetJobDetail("db_pull", "Settings");

  if(lastpull != null)
  {
    lastpull.Description = lastPullDateTime.ToString();
  }
  else
  {
    var newLastPull = new JobDetail("db_pull", "Settings", typeof(IJob));
    newLastPull.Description = lastPullDateTime.ToString();
    var newLastPullTrigger = new CronTrigger("db_pull", "Settings", "0 0 0 * 12 ? 2099");
    sched.ScheduleJob(newLastPull, newLastPullTrigger);
  }
}
Run Code Online (Sandbox Code Playgroud)

我假设在我这样做之后lastpull.Description = lastPullDateTime.ToString();我应该调用一些东西来保存对数据库的更改。有没有办法在 Quartz 中做到这一点,或者我必须使用其他方式并更新它?

jvi*_*lta 5

作业一旦安排就无法更改(更新)。您只能重新安排它(进行任何您可能想要进行的更改)或删除它并创建一个新的。