Quartz.NET еднократна работа

Създадох потребителски интерфейс на ASP.NET MVC, за да създавам задания за стартиране и забравяне за планировчика на Quartz.NET, работещ като услуга за прозорец (RAMJobStore), но просто се чудя дали трябва да изчистя изпълнените задания. Може ли някой да хвърли малко светлина? Следният код е това, което използвах, за да създам Job от 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 data). Можете да получите достъп до данните от MergedJobDataMap, които съдържат както специфични за задачата, така и специфични за задействане данни.   -  person Marko Lahma    schedule 03.12.2013


Отговори (1)


Когато заданието бъде задействано и изпълнено, то ще бъде изтрито от Quartz. Въпреки това, като се има предвид, че използвате нов GUID, изглежда малко вероятно да е проблем независимо дали заданието е изтрито или не. Много малко вероятно е да възникне сблъсък на името.

person Jack Hughes    schedule 02.12.2013