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 了。
沒有留言:
張貼留言