2013-03-30 5 views
1

웹 API를 호출 할 때마다 데이터베이스에 로그온해야합니다. 물론 모든 호출에 대해 내 데이터베이스로 이동하고 싶지는 않습니다.로깅 웹 API 호출 MVC 4

그럼 캐시에 사전과 해시 테이블 개체가 있고 데이터베이스에 10000 개 레코드가 저장됩니다.

나는 10000 명의 사용자가이 작업을 기다리는 것을 여전히 원하지 않습니다. 그리고 응용 프로그램 풀 은 기본적으로 언제든지 재활용 될 수 있기 때문에 장시간 작업을 위해 다른 스레드를 시작할 수 없습니다.

이 시나리오에 가장 적합한 솔루션은 무엇입니까?

감사

답변

0

나는 내구성의보기 오히려 일치하지 않는 주장 할 것이다. 10000 개 개체의 캐시는 앱 풀 재활용 또는 서버 충돌로 인해 언제든지 손실 될 수 있습니다.

그러나 사용자가 기다릴없이 많은 작업을 수행하는 방법에 대한 원래의 질문에

:

  • 을 넣어 응용 프로그램 풀 재활용에 대한 제약과 잠재적 인 데이터 손실 처리합니다.

  • 추가 처리를 위해 캐시 된 메시지를 Windows 서비스에 정기적으로 덤프하십시오. 여전히 데이터를 보존하는 데 100 % 보장되지는 않습니다 (예 : 서비스/서버가 중단 될 수 있습니다.

  • 메시지 큐 (MSMQ), possibly with WCF을 사용하십시오. 메시지 대기열은 디스크에 유지 될 수 있으므로 신뢰할만한 것으로 간주 할 수 있습니다.

메시지 큐 (MSMQ) 기술은 서로 다른 시간에 실행중인 응용 프로그램이 일시적으로 오프라인 상태 일 수 이기종 네트워크와 시스템을 통해 통신 할 수 있습니다. 응용 프로그램은 대기열로 메시지를 보내고 대기열에서 메시지를 읽습니다.

메시지 큐는 보장 된 메시지 배달, 효율적인 라우팅, 보안 및 우선 순위 기반 메시징을 제공합니다. 이는 고성능을 필요로하는 비동기 및 동기 시나리오 에 솔루션을 구현하는 데 사용될 수 있습니다.

이 한 단계 더 ...

요구 사항 및/또는 환경에 따라, 당신은 아마 캐시를 제거하고 메시지 큐에 즉시 (빠르게) 모든 메시지를 작성하지 못했습니다 걱정 촬영하기 성능 손실 또는 큰 쓰기 작업.

+0

감사합니다. 나는 실제로 그것을 다른 서비스/대기열에 가져가는 것에 대해 생각하지 않았습니다. –