2012-07-23 2 views
1

웹 응용 프로그램에는 특정 필드와 그 값을 표시하는 웹 페이지가 있습니다. 값은 사용자가 편집 할 수 있습니다. 일단 값이 편집되면 데이터베이스에 저장됩니다. 이제 제안이 필요한 문제가 발생했습니다. 값이 DB로 업데이트되면 시간이 많이 걸리는 모듈을 거의 실행하지 않아도됩니다. 따라서이 시간 소모적 인 부분은 구성에 따라 즉각적으로 수행되거나 수행되지 않을 수 있습니다. 구성의 옵션은 즉각, 시간당, 매일, 매주 또는 매월 일 수 있습니다. 그래서 즉각적인 경우 모듈을 실행해야합니다. 그렇지 않으면 구성에 따라 지정된 시간에 작업을 트리거해야합니다.구성에 따라 트리거되는 작업을 실행하기위한 제안 제안

작업 스케줄러는이 문제를 해결하는 좋은 방법입니까? Quartz.NET에 대해 들었습니다. 이를 달성 할 수있는 .NET 라이브러리가 있습니까? Pls는 suggesions를 제공합니다.

+0

나는 구식 일지 모르지만 전반적으로 웹 애플리케이션 내부에서 장시간 실행되는 작업을 호스팅하지 않는 것이 좋습니다. 서버에 대한 사용 권한이 충분하다면 데이터베이스를 풀링하여 새로운 작업을 가져오고 Quartz.net과 같은 라이브러리를 사용하여 일정을 계획하고 실행하는 서비스를 만드는 것이 좋습니다. –

답변

1

이러한 작업을 큐에 저장하고 다른 비동기 서비스를 만들어 큐 작업을 실행하는 것이 좋습니다. 따라서 웹 서버 (IIS)에서 모든 노력을로드하지 않으며 웹 서버가 다시 시작되거나 웹 응용 프로그램이 다시 시작될 때 응용 프로그램이 작업을 손실하지 않습니다.

이 솔루션을 만들려면 3 가지 사항을 고려해야합니다.

대기열 설계 및 관리

물론 당신은 큐 서버 (예를 들어, MSMQ, ActiveMQ를, ZeroQ) 중 하나를 사용할 수 있습니다. 그러나 데이터베이스의 새 테이블을 단순화를 위해 대기열로 사용하는 것이 좋습니다. 다음 링크에서 데이터베이스 테이블을 대기열로 사용하는 방법을 찾으십시오. 당신은 여기에 두 가지 옵션이 Windows 작업 스케줄러와 QuatrZ.NET이

http://rusanu.com/2010/03/26/using-tables-as-queues/

작업 스케줄링. 더 많은 사용자 정의가 가능하며 모든 요구 사항에 맞을 수 있으므로이 부분에 QuatrZ.Net을 사용하는 것이 좋습니다. 당신은 QuartZ.NET 서버 배포를 사용하거나 석영 IJob 계약과 Corn expressions에 따라 .NET 4 Managed Extensibility Framework (MEF)를 사용하여 자신의 호스팅 서비스를 구축 할 수 있습니다 서비스

호스팅

.

+1

대기열 기반 비동기 솔루션 제안을 위해 +1, 대기열로 db 제안 : -1. 작업에 적합한 도구 사용 (예 : NServiceBus보기) – jeroenh

+0

제안 해 주셔서 감사합니다. – Vinoth