我在应用程序中使用Quartz.NET 3
作为工作计划程序
有时,我需要将作业安排为“一次性”立即执行。目前,我正在这样做:
//Create job
var uid = Guid.NewGuid().ToString();
IJobDetail jobDetail = JobBuilder.Create<MyJobClass>()
.WithIdentity(uid, "ImmediateJobs")
.Build();
//Create instant-activation trigger
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger-" + uid, "ImmediateJobsTriggers")
.StartNow()
.Build();
//Schedule job for execution
scheduler.ScheduleJob(jobDetail, trigger);
我的问题是:这是否足够,否则会导致可能的内存泄漏?完成后应该以某种方式删除作业还是执行其他任何清理操作?还是由于作业没有其他触发器而自动完成了?
答案 0 :(得分:0)
进一步阅读文档后,我发现您可以使用以下方法触发现有工作:
var jobKey = new JobKey(id, group);
scheduler.TriggerJob(jobKey);
无需每次都创建一个新的
。