私は、特に実行時にジョブの JobDataMap の変更をサポートする Quartz.NET の基本的な Web クライアントに取り組んでいます。
私のジョブは、ジョブをステートフルにするために必要なすべての属性であると私が信じている次の属性で装飾されています。
[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);
}
}
}
最初は、これは for ジョブを使用していたXMLSchedulingDataProcessorPlugin
ためだと思っていましたが、インメモリ (RAMStore) の両方を試しましたが、リモート クライアントによって行われた変更を保持AdoJobStore
できません。JobDataMap