2012-06-22 2 views
0

오랜 시간 동안 asp.net 일 전에 긴 작업을했을 때 작업을 페이지에서 실행하고 일종의 플러시를 사용하여 사용자에게 출력을 보냅니다. . 별도의 스레드 또는 아무것도. asp.net 이후, 나는 같은 방식으로 오랜 작업을 해왔다. 응답을 플러시하는 response.flush가있는 aspx 페이지가 있습니다. 이것은 나를 위해 잘 작동하는 것 같습니다 (그리고 몇 시간 이상 실행되는 몇 가지 작업이 있습니다)하지만이게 나쁘다는 것을 계속 읽지 만 왜 그런지 궁금합니다. 당신에게이 일을하지 않을 것이라는 어떤 문제가 있습니까?ASP.NET 별도의 스레드가없는 긴 작업

답변

1

긴 프로세스를 수행하는 페이지에서 사용자가 실수로 또는 무의식적으로 탐색했다고 가정합니다. 이것은 잠재적으로 중단을 야기 할 수 있으며 사용자에게 공포를 유발하여 잠재적으로 다른 긴 프로세스를 다시 시작하여 다시 제출할 수 있습니다.

온라인으로 은행 계좌를 방문해야하며 시간이 오래 걸릴 수있는 재무 보고서를 생성하려고한다고 가정합니다. 그런 다음 페이지를 열어 두어야하고 책상 등에서 멀리 나갈 수 있습니다. 프로세스가 실행되는 동안 누군가가 책상에 앉아 편안하게 의자에 앉아 뒤로 버튼을 누르면 계정에 백만 달러가 있음을 알게되었습니다. "조니, 오늘 우리 모두를 위해 점심을 사는 것 같아!"

이러한 상황을 처리하는 표준 방법은 특히 상황에 따라 Windows 서비스에서 처리를 처리하고 페이지에서 데이터베이스, 이벤트 로그 또는 프로세스를 통해 프로세스의 현재 상태를 주기적으로 요청할 수 있습니다. 다른 어떤 수단. 일반적으로 사용자가 실행하는 데 5 분이 소요될 수있는 인보이스 발행 프로세스를 시작할 때 일반적으로 취하는 접근 방식입니다. 사용자는 페이지를 다시 방문하여 준비 상태인지 또는 서비스가 선택적으로 전자 메일을 시작하여 텍스트를 보내어 작업 상태를 사용자에게 알릴 수 있는지 확인할 수 있습니다.

+0

은 의미가 있지만 스케쥴러에서 실행되는 모든 관리 작업입니다 – user204588

+0

이것은 자동화 되었습니까? 그렇다면 웹 페이지에 추가 혜택이 없습니다. 그래도 작업이 완료되면 세션 시간 초과가 올바르게 구성되었는지 확인하십시오. 공통 라이브러리가 아닌 페이지에 모든 논리를 코딩하고 웹 페이지 유지를 정당화하는 경우 조직에서 적절하게 제어하는 ​​한 웹 페이지를 유지하십시오. – Jeremy

관련 문제