2010-12-09 3 views
2

저는 .NET에서 대형 시스템을위한 응용 프로그램 데이터 캐시를 설계하고 있습니다.애플리케이션 데이터 캐시 - Quartz.NET 대 태스크 목록?

응용 프로그램 데이터 캐시가 여러 시스템 또는 데이터베이스 (10 개 이상)에서 폴링됩니다. 또한 일정 간격 (30 분)마다 새로 고침해야합니다.

내게는 두 가지 옵션이 있습니다.

첫 번째는 Quartz.NET (또는 다른 스케줄러 프레임 워크)을 사용하여 특정 간격으로 캐시 빌더를 트리거하는 것입니다. 구성 파일의 간격을 쉽게 제어 할 수 있고 스케줄링이 매우 유연한 것 같습니다.

두 번째 옵션은 하나 이상의 작업이 데이터를 가져 와서 캐시를 만들고 마지막 하나가 구성 가능한 시간 동안 잠자기 상태 인 작업 목록을 사용하는 것입니다. 그런 다음 작업 목록을 트리거하고 응용 프로그램이 닫힐 때까지 실행하도록 할 수 있습니다.

지금 당장 취소 토큰을 전달할 수있는 두 번째 옵션에 더 관심이 많아서 시작 및 종료 프로세스를보다 잘 제어 할 수 있습니다. 또한 개별 작업을 세분화하여 작업 계층 구조와 같은 종속성을 정의 할 수 있습니다.

위의 어느 쪽이 더 낫습니까? 더 좋은 방법이 있습니까?

답변

1

표준 Asp.Net 및 SQL 서버 인 경우 SQLCacheDependency를 탐색하십시오. 그것의 이벤트는 기반 데이터베이스 테이블에 변경이있을 때마다 트리거됩니다. 매번 DB를 폴링하지 않아도됩니다. 당신은 내가 스케줄러를 추천 할 것입니다 고려하고있는 두 가지 옵션 중

+0

XML, SQL 서버 및 Oracle을 포함한 소스가 다양합니다. – tonyjy

3

때문에 : 그것은 당신이 작성하고 자신을 유지하지 않아도 뭔가의

  1. .
  2. 스케줄러는 스케줄을 지속 할 수 있으므로, 어플리케이션이 다시 시작되거나 재부트하면 스케줄러가 스케줄을 처리합니다.
  3. 태스크는 Quartz.net의 스케줄러에서 작업이라고하며 별도의 간격으로 실행되도록 설정할 수 있습니다. 하나의 작업이 다른 작업을 트리거하게 할 수도 있습니다.
  4. 스케줄러는 일정 및 작업에 대한 프로그래밍 방식의 액세스를 제공하므로 필요에 따라 작업을 일시 중지, 추가 또는 제거 할 수 있습니다.