Quartz.net-我应该手动删除计划一次执行的作业吗?

时间:2018-12-17 12:34:58

标签: quartz.net quartz.net-3.0

我在应用程序中使用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);

我的问题是:这是否足够,否则会导致可能的内存泄漏?完成后应该以某种方式删除作业还是执行其他任何清理操作?还是由于作业没有其他触发器而自动完成了?

1 个答案:

答案 0 :(得分:0)

进一步阅读文档后,我发现您可以使用以下方法触发现有工作:

var jobKey = new JobKey(id, group);
scheduler.TriggerJob(jobKey);

无需每次都创建一个新的