Quartz.Net - обновить / удалить задания / триггеры - PullRequest
1 голос
/ 18 июля 2011

Я использую 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);
  }
}

Я предполагаю, что после выполнения lastpull.Description = lastPullDateTime.ToString(); я должен позвонитьчто-то, чтобы сохранить изменения в базе данных. Есть ли способ сделать это в Quartz или мне нужно перейти на использование других средств и обновить его?

1 Ответ

4 голосов
/ 21 июля 2011

Вы не можете изменить (обновить) задание, если оно запланировано.Вы можете только перепланировать его (с любыми изменениями, которые вы можете захотеть внести) или удалить его и создать новый.

...