2013-02-12 6 views
2

웹 사이트가 실행 중일 때 백그라운드에서 일부 처리를 수행해야합니다. 30 분마다 데이터베이스와 상호 작용하는 코드를 실행해야합니다.ASP .NET MVC - 백그라운드 타이머를 실행해야합니까?

코드를 30 분마다 실행하는 타이머를 사용해도 되겠습니까? 아니면이를 수행하는 더 좋은 방법이 있습니까? 타이머가 구현해도 괜찮 으면 Global.asax 폴더의 Application_Start() 함수에 구현하려고합니다.

대부분의 시간 동안 실제로 코드가 실행되지 않기 때문에 타이머를 사용하면 성능 문제가 발생하지 않습니다.

검색 중이지만 MVC와 관련된 내용을 찾을 수 없습니다. 그게 중요한지 확실하지 않습니다.

+3

얼마나 제어 할 서버에 설치 될 수 있도록하면서 개발 콘솔 응용 프로그램과 같이 쉽게 실행되는 서비스를 할 수있는 프레임 워크 당신은 호스팅 환경을 가지고 있습니까? Quartz.NET과 같은 것을 사용하여 웹 애플리케이션에 작업 스케줄러를 구현할 수 있지만 예약 된 작업 또는 잠자기 후 모든 X를 깨울 Windows 서비스를 통해 실행할 수있는 콘솔 애플리케이션을 만드는 것이 더 쉬울 수도 있습니다. 필요한 모든 것을 할 수있는 분. –

+6

IIS가 응용 프로그램 풀을 재활용하고 새 요청이 이루어질 때까지 응용 프로그램이 실행되지 않는다는 점을 고려해야합니다. 타이머가이를 확인할 수 있다면 사용하는 것이 좋으며, 그렇지 않으면 Windows 서비스를 이용할 것입니다. –

+0

아, 그럼 일을해야 할 서비스와 같은 별도의 프로그램이 있어야한다고 생각합니다. 그것이 완전히 새로운 도우미 서비스를 만드는 데 가치가 있는지 모르지만,이 조각은 매우 복잡하지 않으며 데이터베이스의 일부 (약 1000) 정수를 업데이트하는 것만 포함합니다. – Deniz

답변

8

당신이 정말로 asp.net에 건물에 설정되어 있다면 Haacked의 기사 The Dangers of Implementing Recurring Background Tasks In ASP.NET을보십시오.

그는 위험에 대해 설명하고 다른 방법으로 당신과 싸울 수있는 방법에 대해 설명합니다. 그렇지 않으면 다른 사람들이 서비스/일정 작업이 더 나은 해결책이라고 제안하기 때문에. 또한

당신은 TopShelf에서 살펴 Windows 서비스 경로를 아래로 이동하는 경우는 여전히 쉽게