使用 C# 在 Quartz .Net 中更新 JobDataMap 无法正常工作
Update JobDataMap doesn't work as expected in Quartz .Net with C#
当我尝试暂停我的工作时,我想更新它的数据映射,以便 "Paused" 状态可以保存在那里。我的代码如下所示:
public void Pause(JobKey key)
{
var job = Scheduler.GetJobDetail(key);
if(job == null) return;
job.JobDataMap.Put("Status", "Paused");
Scheduler.PauseJob(job.Key);
}
作业已按预期暂停,但状态未更新,我不明白为什么。可能是什么原因?是否有其他方法可以更新 Scheduler.GetJobDetail(key)
返回的作业的 JobDatamap
?
据我所知: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 用更新的作业替换存储的作业。
当我尝试暂停我的工作时,我想更新它的数据映射,以便 "Paused" 状态可以保存在那里。我的代码如下所示:
public void Pause(JobKey key)
{
var job = Scheduler.GetJobDetail(key);
if(job == null) return;
job.JobDataMap.Put("Status", "Paused");
Scheduler.PauseJob(job.Key);
}
作业已按预期暂停,但状态未更新,我不明白为什么。可能是什么原因?是否有其他方法可以更新 Scheduler.GetJobDetail(key)
返回的作业的 JobDatamap
?
据我所知: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 用更新的作业替换存储的作业。