我正在使用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中执行此操作,还是必须使用其他方法进行更新?
答案 0 :(得分:4)
一旦安排了作业,您就无法更改(更新)作业。您只能重新安排它(可能需要进行任何更改)或删除它并创建一个新的。