Quartz.net - я должен вручную удалить работу, запланированную для единовременного выполнения? - PullRequest
0 голосов
/ 17 декабря 2018

Я использую 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 голосов
/ 21 декабря 2018

После прочтения документации я обнаружил, что вы можете запустить существующее задание, используя:

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

без создания нового каждый раз.

...