문제

다른 컴퓨터에서 일부 작업을 수행 해야하는 ASP.NET 응용 프로그램이 있습니다. 이를 위해 나는 두 기계에 보이는 대기열에 메시지를 남기고 있습니다. 작업이 완료되면 메시지가 두 번째 대기열에 남아 있습니다.

작업이 완료되었는지 확인하려면 두 번째 큐를 정기적으로 확인하려면 ASP.NET 응용 프로그램이 필요합니다.

가장 좋은 곳은 어디에 있지만 그런 루프는 어디입니까? Global.asax?

나는 당신이 간격 후에 호출되는 함수를 얻을 수 있다는 것을 읽은 것을 기억합니다. 그게 적합할까요?

도움이 되었습니까?

해결책

ASP.NET에서 정기적 인 작업을 달성하기 위해 두 가지 수용 가능한 접근 방식을 찾았습니다.

  1. Global.asax에서 Application_start 동안 스레드를 생성하십시오.
  2. Application_Start에서 다시 ASP.NET 캐시에 더미 항목을 삽입하고 특정 간격으로 만료되어 해당 캐시 항목이 만료 될 때 호출 할 콜백을 제공합니다. 해당 콜백에서 작업을 수행하고 캐시 항목을 동일한 방식으로 다시 삽입 할 수 있습니다.

두 가지면에서 오류가 발생하더라도 스레드가 계속 작동하는지 확인해야합니다. SessionStart 및 BeginRequest에 복원 코드를 배치하여 스레드 또는 캐시 항목이 있는지 확인하고 무언가가 발생한 경우 갱신 할 수 있습니다.

다른 팁

나는 이것이 정기적으로 이루어지고 다른 프로세스가 항목을 대기열에 올려 놓았다고 가정합니까?

이 경우 Application.ASAX에서 Application START에서 단순히 대기열을 모니터링하는 별도의 스레드를 생성한다는 것을 ASAX에 넣을 수 있습니다. 타이머를 사용하여 X 초 동안 스레드를 잠들게 할 수 있습니다. 그런 다음 결과를 확인할 수 있습니다.

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