Разовая работа Quartz.NET

Я создал пользовательский интерфейс ASP.NET MVC для создания заданий «огонь и забудь» для планировщика Quartz.NET, работающего как оконная служба (RAMJobStore), но мне просто интересно, нужно ли мне очищать выполненные задания. Кто-нибудь может пролить свет? Следующий код — это то, что я использовал для создания задания из контроллера MVC.

ISchedulerFactory sf = new StdSchedulerFactory(properties);
IScheduler sched = sf.GetScheduler();

JobDataMap map = new JobDataMap();
map.Put("...", "......");

IJobDetail jobDetail = JobBuilder.Create<OneTimeJob>()
    .WithIdentity("onetimejob_" + Guid.NewGuid(), "default")
    .UsingJobData(map)
    .Build();
ISimpleTrigger simpleTrg = (ISimpleTrigger)TriggerBuilder.Create()
    .WithIdentity("onetimetrigger_" + Guid.NewGuid(), "default")
    .StartAt(DateTime.UtcNow.AddMinutes(1))
    .Build();

// schedule the job
sched.ScheduleJob(jobDetail, simpleTrg);

person Kyaw Thurein    schedule 02.12.2013    source источник
comment
Вы можете сделать все еще проще, сделав свою работу долговечной в планировщике (просто добавьте ее один раз). И запускайте его с помощью разных карт данных задания (через карту триггера), используя scheduler.TriggerJob(JobKey jobKey, данные JobDataMap). Вы можете получить доступ к данным из MergedJobDataMap, которые содержат как данные о задании, так и данные о триггере.   -  person Marko Lahma    schedule 03.12.2013


Ответы (1)


Когда задание запускается и выполняется, оно будет удалено Quartz. Однако, учитывая, что вы используете новый GUID, вряд ли возникнет проблема, удалено ли задание или нет. Крайне маловероятно, что произойдет конфликт имен.

person Jack Hughes    schedule 02.12.2013