Quartz.net - 我应该手动删除计划一次性执行的作业吗?
Quartz.net - should I manually delete a job scheduled for one-time execution?
我在我的应用程序中使用 Quartz.NET 3
作为作业调度程序
有时,我需要安排一个 "one time" 立即执行的作业。目前我是这样做的:
//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);
我的问题是:这是否足够或是否会导致可能的内存泄漏?完成后我应该以某种方式删除作业还是进行任何其他清理操作?还是自动完成,因为作业没有任何其他触发器?
进一步阅读文档后,我发现您可以使用以下方式触发现有作业:
var jobKey = new JobKey(id, group);
scheduler.TriggerJob(jobKey);
无需每次都创建一个新的。
我在我的应用程序中使用 Quartz.NET 3
作为作业调度程序
有时,我需要安排一个 "one time" 立即执行的作业。目前我是这样做的:
//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);
我的问题是:这是否足够或是否会导致可能的内存泄漏?完成后我应该以某种方式删除作业还是进行任何其他清理操作?还是自动完成,因为作业没有任何其他触发器?
进一步阅读文档后,我发现您可以使用以下方式触发现有作业:
var jobKey = new JobKey(id, group);
scheduler.TriggerJob(jobKey);
无需每次都创建一个新的。