Я хотел бы сменить триггер одной из моих заданий. Итак, что я делаю, сначала посмотрим, есть ли в моей работе триггеры, связанные с ним. Если да, то Reschedule
с новым триггером, который пользователь выбрал. Но когда я смотрю на мой AdoJobStore
, нового триггера нет, и работа перестанет работать после перенастройки.Job Rescheduling не работает
Я поставил весь этот код в try-catch
блоке, но я не получаю никаких Exception
с, но это может быть потому, что я должен поймать JobExecutionException
сек, а не просто Exception
сек?
var jobKey = new JobKey(jobName, jobGroup);
IScheduler sched = scheduler.GetScheduler();
IList<ITrigger> triggers = sched.GetTriggersOfJob(jobKey);
if (triggers.Count != 0)
{
ITrigger existingTrigger = triggers[0];
sched.UnscheduleJob(existingTrigger.Key);
ITrigger newTrigger = BuildTrigger(triggerName, triggerGroup);
IJobDetail job = sched.GetJobDetail(jobKey);
DialogResult dr = MsgBox.Show(string.Format("Confirm campaign '{0}' with the schedule '{1}'?", lblCampaignName.Text, txtbxMessage.Text), "Confirm Schedule", MsgBox.Buttons.YesNo, MsgBox.Icon.Question);
if (dr == DialogResult.Yes)
{
sched.RescheduleJob(existingTrigger.Key, newTrigger);
int updateResult = UpdateCampaignSchedule();
if (updateResult == 1)
MsgBox.Show("Campaign schedule successfully updated!", "Edit schedule", MsgBox.Buttons.OK, MsgBox.Icon.Info);
else
MsgBox.Show("Unable to update campaign schedule in the database.", "Edit schedule", MsgBox.Buttons.OK, MsgBox.Icon.Error);
}
}
else
{
..
}