Кэш данных приложения - Quartz.NET vs Список задач? - PullRequest
2 голосов
/ 09 декабря 2010

Я работаю над созданием кэша данных приложения для большой системы в .NET.

Кэш данных приложения будет опрашиваться из нескольких (10+) разных систем или баз данных.Он также должен быть обновлен через определенные промежутки времени (30 минут).

У меня есть два варианта.

Первый - использовать Quartz.NET (или другую платформу планировщика) для запуска построителя кэша через определенный интервал.Кажется, что я легко могу контролировать интервалы в файле конфигурации, и расписание очень гибкое.

Второй вариант - использовать список задач, где одна или несколько задач будут извлекать данные и создавать кэш, а последняяодин будет спать в течение настраиваемого периода времени.Затем я могу вызвать список задач и позволить ему работать, пока приложение не закроется.

Прямо сейчас я более склонен ко второму варианту, где я могу передать токен отмены, чтобы был больше контроль над запускоми остановите процесс.Кроме того, отдельная задача может быть разбита для определения зависимостей, таких как иерархия задач.

Какой путь выше, лучше?Есть ли лучший способ?

Ответы [ 2 ]

3 голосов
/ 10 декабря 2010

Из двух рассматриваемых вами вариантов я бы порекомендовал планировщик, потому что:

  1. Это то, что вам не нужно писать и поддерживать себя.
  2. Планировщики могут сохранять расписания, поэтому, если приложение перезапускается или вы перезагружаетесь, планировщик обрабатывает его.
  3. Задачи называются заданиями в планировщиках (в любом случае, в Quartz.net), и вы можете настроить их выполнение через отдельные интервалы. Вы также можете иметь одно задание для запуска других заданий.
  4. Планировщики предоставляют программный доступ к расписанию и заданиям, поэтому вы можете приостанавливать, добавлять или удалять задания по мере необходимости.
1 голос
/ 09 декабря 2010

Хорошо, если это стандартный Asp.Net и SQL-сервер, изучите SQLCacheDependency.Он основан на событиях и будет запускаться всякий раз, когда происходит изменение в таблицах неподходящей базы данных.Вам не нужно каждый раз опрашивать БД.

...