我有一个 Quartz.NET 工作,我设置如下:
var jobKey = new JobKey("JobName", "JobGroup");
var triggerKey = new TriggerKey("JobName", "JobGroup");
var jobData = new JobDataMap();
jobData.Add("SomeKey", "OriginalValue");
var jobDetail = JobBuilder.Create<JobClass>()
.WithIdentity(jobKey)
.StoreDurably()
.UsingJobData(jobData)
.Build();
Scheduler.AddJob(jobDetail, true);
var triggerDetail = TriggerBuilder.Create()
.WithIdentity(triggerKey)
.StartNow()
.WithDailyTimeIntervalSchedule(x => x.OnEveryDay()
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(04, 07))
.EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(06, 07))
.WithMisfireHandlingInstructionFireAndProceed())
.ForJob(jobKey)
.Build();
Scheduler.ScheduleJob(triggerDetail);
我正在尝试使用以下代码手动触发该作业:
var jobData = new JobDataMap();
jobData.Add("SomeKey", "SomeValue");
TaskScheduler.Scheduler.TriggerJob(new Quartz.JobKey("JobName", "JobGroup"), jobData);
当我运行手动触发这段代码时,值
context.JobDetail.JobDataMap["SomeKey"]
是
"OriginalValue"
而不是
"SomeValue"
正如我所料。我究竟做错了什么?