Quartz.NET에 대한 기본 웹 클라이언트에서 작업 중에 런타임에 작업의 JobDataMap 수정을 지원하고 있습니다.원격 클라이언트에서 JobDataMap 변경 사항을 유지하는 방법
내 직업은 내가 믿는 다음과 같은 속성들로 장식되어이 모든 것을 작업 상태 할 필요가있다 :
이[PersistJobDataAfterExecution]
[DisallowConcurrentExecution]
public class SampleTenantJob : IJob { ... }
런타임에서 나는 다음과 같은 코드를 실행을하지만 JobDataMap은 유지되지 않습니다 :
public void UpdateJobProperties(string jobName, string groupName, IDictionary<string, object> properties)
{
IJobDetail job;
if (!TryGetJob(jobName, groupName, out job))
return;
foreach (var property in properties)
{
if (job.JobDataMap.ContainsKey(property.Key) && property.Value != null)
{
job.JobDataMap.Put(property.Key, property.Value);
}
}
}
은 내가 작업의 XMLSchedulingDataProcessorPlugin
를 사용했지만, 난이 t에 의해 JobDataMap
변화를 지속 할 수없는 여전히 시도 모두 메모리에 (RAMStore)와 AdoJobStore
및했기 때문에이이었다 처음에 생각 그는 원격 클라이언트.
"새 JobDataMap으로 작업을 삭제하고 다시 만들어야한다고 생각합니다." - 이것은'scheduler.AddJob (job, replace : true);를 호출하는 것입니다. –