Мне нужна помощь. Я пытаюсь выяснить, как планировать зависимые задания с помощью quartz.net и пытаться избежать конфликтов, поскольку я использую соединение с базой данных. У меня есть веб-приложение с 3 классами: DownloadJob, UploadJob, Table1-Table2Job. DownloadJob загружает элементы из mysql db в Sql db каждый день в 4 часа ночи. UploadJob выполнить запрос на обновление mysql db из таблицы sql (Таблица 2) каждые 4 мин. Таблица1-Table2Job несет ответственность за перенос предметов из таблицы sql в другую таблицу sql каждые 20 мин.Планирование параллельных вакансий в quartz.net
Большая проблема заключается в том, как бороться с конфликтами соединения. UploadJob должен ждать, если Table1-Table2Job находится в процессе. и затем продолжайте. Как Table1-Table2Job должен ждать, если выполняется UploadJob. Загрузка всегда должна идти.
я должен создать планировщик код класса желание:
public class JobScheduler
{
public static void Start()
{
Ul1_Ul2dbJob classU1_U2Job = new Ul1_Ul2dbJob();
UploadJob classUpJob = new UploadJob();
IScheduler schedulerDownload = StdSchedulerFactory.GetDefaultScheduler();
IScheduler schedulerUl1_Ul2 = StdSchedulerFactory.GetDefaultScheduler();
//schedulerUl1_Ul2.Start();
IScheduler schedulerUpload = StdSchedulerFactory.GetDefaultScheduler();
//schedulerUpload.Start();
IJobDetail jobDown = JobBuilder.Create<DownloadJob>().Build();
IJobDetail jobUpl = JobBuilder.Create<UploadJob>().Build();
IJobDetail jobUl1_Ul2 = JobBuilder.Create<Ul1_Ul2dbJob>().Build();
//Trigger di Download
ITrigger trigger = TriggerBuilder.Create()
.WithDailyTimeIntervalSchedule
(s =>
s.WithIntervalInHours(24)
.OnEveryDay()
.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(03, 00))
)
.Build();
// ITrigger trigger = TriggerBuilder.Create()
//.WithCronSchedule(string.Format(cronFormat))
//.Build();
//trigger dei Upload
ITrigger trigger1 = TriggerBuilder.Create()
.WithCronSchedule("0 0/1 * * * ?")
.StartNow()
.WithPriority(1)
.Build();
//trigger per spostamento UL1 a UL2
ITrigger trigger2 = TriggerBuilder.Create()
.WithCronSchedule("0 0/1 * * * ?")
.StartNow()
.WithPriority(1)
.Build();
schedulerUpload.Start();
schedulerUl1_Ul2.Start();
schedulerUpload.ScheduleJob(jobUpl, trigger1);
schedulerUl1_Ul2.ScheduleJob(jobUl1_Ul2, trigger2);
//schedulerUpload.ScheduleJob(jobUl1_Ul2, trigger2);
//// scheduling with use of function Lock()
lock (schedulerDownload)
{
schedulerDownload.Start();
schedulerDownload.ScheduleJob(jobDown, trigger);
}
}**
Кто-то может мне помочь?