quartz.net: как да добавяте и премахвате задачи по време на изпълнение

Използвам услуга на Windows за стартиране на задачи на Quartz.NET с помощта на интеграцията на Spring.NET.

Изправен съм пред следните два проблема:

  1. Постоянно добавям/премахвам работни места (с нови spring.net конфигурации за нови бизнес обекти). Това означава, че трябва да спирам услугата windows и изпълняваните задачи всеки път.

  2. Освен това задачите отнемат много време за изпълнение, така че би било добре да има няколко сървъра, всеки от които изпълнява задачите, които конфигурирам на едно централно място.

Как бихте препоръчали прилагането на тези 2 функции?


person Max    schedule 21.08.2012    source източник


Отговори (2)


AFAIK няма начин да направите #1 без да напишете код за зареждане на планировчика в отделен домейн на приложение и след това сами да управлявате домейните на приложението. Това не е налично в дистрибуцията на Quartz.Net, така че ще трябва да го направите сами.

За елемент #2 можете да настроите клъстерни кварцови сървъри, което ще реши този проблем. Ще трябва да използвате хранилище на база данни, за да можете да настроите планировчиците да бъдат групирани.

person jvilalta    schedule 23.08.2012

Ако не искате да настроите кварцовите клъстерирани сървъри, друго предложение е да създадете своя собствена проста архитектура, базирана на опашка. Имате една-единствена лека услуга за планиране, която поставя вашите задачи на опашка (опашките AWS/Azure работят добре) и след това набор от работници, които могат да консумират тези задачи. Сблъсках се с подобни проблеми с промяната на кварцовите графици и открих, че е по-лесно да управлявам кварца, когато не трябваше да се тревожа за моите дълготрайни процеси, изпълнявани в кварцови нишки. Разбира се, ако наистина трябва да спрете задания, след като бъде поискана промяна, това може да не работи за вас.

person Joe Abrams    schedule 05.12.2012