Unable to store Job: 'Group.Job', because one already exists with this identification.
上網查一度以為不能這樣做(好像別人不太有這個需求),實際上是可以的,有兩個重點。
首先,錯誤訊息說的是 key 重複,所以新增工作排程的時候要檢查該工作是否已存在
if (sched.CheckExists(trigger.JobKey)) sched.ScheduleJob(trigger); else sched.ScheduleJob(job, trigger);
再來,如果不是組合進去 Trigger 得預先知道自己要配給哪個 Job 所以要建造者模式進行的過程做 .ForJob(name, group)
TriggerBuilder tb = TriggerBuilder.Create(); tb.WithIdentity(tSett.Name, tSett.Group) .ForJob(jSett.Name, jSett.Group) // relate them before schedule .WithSimpleSchedule(ss => { ... });這樣就可以把多個 Trigger 指派給單一 Job 了。
沒有留言:
張貼留言