更新JobDataMap不';t在Quartz.Net中使用C#
当我试图暂停我的工作时,我想更新它的数据映射,以便“暂停”状态可以保存在那里。我的代码如下所示:更新JobDataMap不';t在Quartz.Net中使用C#,c#,quartz.net,C#,Quartz.net,当我试图暂停我的工作时,我想更新它的数据映射,以便“暂停”状态可以保存在那里。我的代码如下所示: public void Pause(JobKey key) { var job = Scheduler.GetJobDetail(key); if(job == null) return; job.JobDataMap.Put("Status", "Paused"); Scheduler.PauseJob(job.Key); } 作业按预期暂停,但其状态未更新,我
public void Pause(JobKey key)
{
var job = Scheduler.GetJobDetail(key);
if(job == null) return;
job.JobDataMap.Put("Status", "Paused");
Scheduler.PauseJob(job.Key);
}
作业按预期暂停,但其状态未更新,我无法理解原因。原因可能是什么?是否有其他方法更新调度程序返回的作业的
JobDatamap
。GetJobDetail(key)?正如我所了解的:Quartz仅在执行作业数据映射后才更新作业数据映射。因此,要解决此问题,我必须将作业重新添加到调度程序:
var job = Scheduler.GetJobDetail(key);
if(job == null) return;
job.JobDataMap.Put("Status", "Paused");
Scheduler.AddJob(job, true);
Scheduler.PauseJob(job.Key);
Scheduler.AddJob(job,true)代码>行指示Quartz用更新的作业替换存储的作业