2010-07-09 2 views
1

우리는 웹 서비스를 사용하는 웹 응용 프로그램을 개발했습니다. 사용자는 응용 프로그램을 사용하여 데이터를 업로드합니다. 웹 서비스를 사용하여 하나의 레코드를 업로드하는 데는 7 초가 걸립니다. 사용자는 한 번에 약 12000 개의 레코드를 업로드합니다. 그래서 더 많은 시간이 걸립니다. 5 ~ 6 시간 이상 웹 응용 프로그램을 실행할 수 있습니까?단일 요청에 대해 ASP.net 응용 프로그램을 실행할 수있는 기간

이 응용 프로그램을 배포 할 때 고려해야 할 모든 요소는 무엇입니까?

<Object> 
<record> 
<value1> 1 </value1> 
<value2> asd </value2> 
</record> 
<record> 
<value1> 2 </value1> 
<value2> asd </value2> 
</record> 
<record> 
<value1> 3 </value1> 
<value2> asd </value2> 
</record> 
<record> 
<value1> 4 </value1> 
<value2> asd </value2> 
</record> 
</object> 

처럼 대량으로 레코드를 업로드 할 수있는 옵션이 있지만 문제는 우리가 각 레코드에 대한 업로드 상태를 가질 필요가있다. onr 레코드에 데이터 오류가 있으면 전체 업로드가 취소됩니다. 그래서 우리는 하나씩 레코드를 처리하고 있습니다.

이렇게하는 것이 더 좋은 방법이 있는지 제안 해주십시오. 이 문제와 관련하여 질문이 있으시면 알려 주시기 바랍니다. 감사.

감사합니다. Jebli.

답변

2
  1. 사용자 업로드 파일.
  2. 응용 프로그램에서 파일을 가져 와서 어딘가에 저장합니다.
  3. 응용 프로그램은 업로드 된 파일을 처리하기 위해 백그라운드 스레드를 실행합니다. 파일을 입력으로 사용하는 외부 응용 프로그램에서도 처리 할 수 ​​있습니다.
  4. 사용자는 처리가 시작되었음을 알리는 서버로부터 즉시 응답을받습니다.
  5. 사용자가 업로드 진행 상태를 보여주고 잘못된 항목을보고하는 다른 페이지에 대한 액세스 권한이 있습니다.

최종 사용자는 파일 업로드가 지속되는 시간을 초과해서는 안됩니다. 사용자가 회전하는 서클에서 몇 시간 동안 쳐다보기를 원하지 않습니다.

+0

그래서 사용자가 창을 깎아두면 백 그라운드 프로세스가 종료됩니다. – Jebli

+0

아니요. 사용자가 브라우저를 닫으면 아무 일도 발생하지 않습니다. 서버에서의 처리에는 영향을 미치지 않습니다. 나는 모든 HTTP 요청이 빠르다는 것을 말하고 싶었고 추가 처리가 있으면 백그라운드에서 수행해야한다. 처리 상태가 다른 다른 페이지를 준비해야합니다. – LukLed

2

현재 솔루션에서 가장 중요한 점은 서버 연결 시간 제한을 충분히 높게 설정하는 것입니다.

이외에도 더 나은 해결책은 사용자가 원시 파일을 업로드하고 백그라운드 프로세스에서 완전한 처리 서버 쪽을 수행하게하는 것입니다. 사용자에게 프로세스의 상태에 대한 정보를 제공하는 것이 모두 어려운 일은 아닙니다.

관련 문제