2011-10-08 2 views
0

Google 앱 엔진을 사용하고 있습니다. 모든 전에이 잘 작동하지만 난 서블릿을 호출 할 때 현재 브라우저는 많은 시간을 소요하고 표시했다 :왜 웹 응용 프로그램에 DeadlineExceededException이 발생합니까?

DeleteBooksServlet: com.google.apphosting.api.DeadlineExceededException: This request (0000000000000000) started at 2011/10/08 10:58:13.573 UTC and was still executing at 2011/10/08 10:59:13.036 UTC. 

을 그 서블릿에서 나는 데이터베이스에서 모든 책을 소요하고 삭제하는 쿼리가 있습니다.

동일한 서블릿이 제대로 작동하기 전에는 이제이 문제가 발생합니다. 내가 왜 이걸 지금 가져 오는거야? 미리 감사드립니다.

+0

1 분 이상? 1,000 만권 이상의 책을 삭제 하시겠습니까? 또는 색인이 생성되지 않은 열에서'WHERE'를 사용하여 삭제 하시겠습니까? DB 테이블을 적절하게 색인화하는 방법과시기에 대해 읽어보십시오. – BalusC

답변

2

삭제 n 개의 책을 O (n)의 시간이 소요 참조하십시오. 그 시간이 요청 제한을 초과하면, 그 작업을 더 빨리 수행해야합니다.

아주 좋은 일반적인 기술은 삭제를 일괄 처리로 나누는 것입니다. 일괄 적으로 일괄 처리로 100 권의 책을 삭제할 수 있습니다. 그런 다음 태스크 큐 프레임 워크를 사용하여 배치를 예약하고 실행하십시오. 어떤 사람들은 이것을 더 받아들이고 배치 작업을 관리하기 위해 MapReduce 프레임 워크를 사용합니다.

관련 문제