문제

Jeff는 이전에 블로그에 다음과 같이 글을 올렸습니다. 캐시를 사용하여 그의 웹사이트에서 "대역 외" 처리를 수행하기 위해 사람들이 이러한 종류의 작업을 처리하기 위해 사용하는 다른 기술이 무엇인지 궁금합니다.

도움이 되었습니까?

해결책

몇 년 전 Rob Howard가 HttpModule을 사용하여 백그라운드에서 작업을 처리하는 방법을 설명하는 것을 보았습니다.캐시를 사용하는 것만큼 매끄럽지는 않지만 특정 상황에서는 더 나을 수도 있습니다.

이 블로그 게시물 자세한 내용이 있으며, 둘러보면 동일한 정보를 포착하는 다른 정보도 많이 있습니다.

다른 팁

윈도우 서비스

당신은 방법을보고 싶을 수도 있습니다 DotNetNuke 그것을 한다.VB.NET으로 작성된 것으로 알고 있지만 코드를 C#으로 개조했습니다.소스를 자세히 살펴보던 중 관리 영역에 예약된 작업을 설정하는 기능이 있다는 것을 알았습니다.이러한 작업은 관리 인터페이스를 통해 설정되고 데이터베이스에 저장됩니다.사이트가 시작되면 Global.asax 파일을 통해 이 서비스를 실행할 다른 스레드를 만든 다음 예약된 시간에 예약된 작업을 실행합니다.정확한 논리를 기억할 수 없습니다. 시간이 많이 지났지만 다른 사람들이 Asp.Net 응용 프로그램에 대해 대역 외 프로세스를 수행한 방법에 대한 좋은 리소스임은 분명합니다.이 기술은 여전히 ​​Asp.Net 애플리케이션 내에서 논리를 유지하지만 제 생각에는 대역을 벗어나게 됩니다.

주로 데이터 처리 작업이고 MSSQL을 사용하는 경우 예약된 SSIS 작업은 어떻습니까?

예약된 작업 또는 크론 작업.

예약된 작업이나 크론 작업의 문제점은 웹 서버와 메모리 공간을 공유하지 않는다는 것입니다.웹 서버에서 페이지를 요청하는 예약된 작업을 설정할 수 있지만 이로 인해 장기 실행 작업에 문제가 발생할 수 있습니다.캐시 정리, 리소스 모니터링, 일반적인 관리 작업과 같은 간단한 유틸리티 작업을 수행하기 위해 실제 ASP.Net 응용 프로그램 스택에서 우선 순위가 낮은 스레드를 실행하는 것이 좋을 것입니다.

별도의 에이전트와 함께 간단한 대기열 파일.각 유형의 대역외 프로세스에 대해 지정된 프로세스를 수행하는 데 필요한 모든 데이터가 포함된 대기열 파일에 대한 디렉터리를 감시하는 별도의 에이전트 .exe를 작성합니다.

이것은 지저분해 보일 수 있지만 실제로는 많은 유연성을 제공하며 ASP.net 프로세스 공간에서 많은 처리를 수행하지 않고 이 스타일을 쉽게 적용하여 저렴한 Linux 서버에서 팜 처리를 수행할 수 있습니다. 더 많은 RAM/CPU/디스크가 필요할 때를 위한 Mono의 에이전트 프로세스.

asp.net 페이지에 가장 익숙하다면 작업을 처리하는 작은 앱을 작성한 다음 웹 사이트를 모니터링하는 외부 서비스로 앱을 "핑"할 수 있습니다.이렇게 하면 앱이 계속 살아있게 됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top