3
我正在研究Quartz.NET的基本Web客戶端,其中包括支持在運行時修改作業的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
的職位,但我都試過了存儲器(RAMStore)和AdoJobStore
,但還是無法堅持被T做JobDataMap
變化他是遠程客戶端。
「我認爲你必須用新的JobDataMap刪除並重新創建作業。」 - 這是我必須做的,調用'scheduler.AddJob(job,replace:true);' –