답변:
나는 "모범 사례"에 대해 모른다. 가장 일반적인 실수를 알고 있습니다.
첫 번째 실수 : DOS 자신
웹 핸들러를 사용하여 장기 실행 작업을 처리합니다. 장기 실행 작업이되는 적중률, 실행 기간 및 지속 트래픽 양에 따라 이는 나쁘거나 매우 나쁠 수 있습니다.
장기 실행 작업을 완료하는 데 걸리는 시간 내에 장기 실행 작업을 두 개 이상받지 않도록하려고합니다. 당신이 스스로를 DOS. 백분율과 시간이 일정하게 유지된다고 가정하면 더 많은 트래픽을 얻을 수 있습니다. 트래픽 증가에 한계를 스스로 부과하는 문제 중 하나입니다.
두 번째 실수 : 웹 핸들러에서 스폰
웹 핸들러에서 프로세스를 생성하여 장기 실행 프로세스를 처리하는 것은 까다로울 수 있으며 결과적으로 오류가 발생하기 쉽습니다.
옵션
나는 보통 at(1)
웹 핸들러를 깨끗하게 분리하지 않고 사용 합니다.
로 폴링 구현을 사용할 수도 있습니다 cron
.
처리를 처리하는 다른 서버 프로세스와 통신 할 수 있습니다. 즉, 통신을 수행 할 수 있습니다 sockets
, pipes
지내는 HTTP 호출 또는 큐 메시지를 라우팅과 같은, 또는 높은 수준의 추상화.
나는 당신이 몇 분 이상 이야기하고 있다고 가정합니다.
몇 분이 지나면 백그라운드에서 작업자 스레드를 시작하고 UI에 약간의 진행률을 표시 할 수 있습니다. 많은 웹 응용 프로그램이이 방법을 사용합니다.
5 분 이상이면 작업을 전용 서비스에 위임 할 수 있습니다. 한 예로 Google 웹 로그 분석에서 생성 한 보고서가 있습니다.
Microsoft 메시징 대기열을 사용하여 시스템에서 다른 시스템으로 또는 구성 요소에서 다른 시스템으로 정보를 전송할 수 있습니다.