2010-01-31 5 views
1

다소 혼란 스럽습니다. 필자는 Java 독립 실행 형 응용 프로그램을 작성했으며 이제는 GAE를 사용하여 웹에 배포하고 GAE에 대해 배우기도합니다. 내 응용 프로그램에서는 파일에서 데이터를 읽고 메모리에 저장하고 처리 한 다음 결과를 메모리 또는 파일에 저장합니다. GAE의 데이터 저장소에 결과를 저장해야한다는 것을 이해합니다. 따라서 컴퓨터에서 프로그램을 독립적으로 실행 한 다음 결과를 파일에 기록한 다음 GAE를 사용하여 모든 결과를 데이터 저장소에 업로드 한 다음 사용자가 쿼리 할 수 ​​있습니다. 그러나 전체 프로세스를 GAE 애플리케이션으로 전송할 수있는 방법이 있습니까? 그래서 응용 프로그램은 파일에서 데이터를 읽고, 처리 (내 컴퓨터가 아닌 응용 프로그램 서버의 메모리 사용 - 적어도 4GB의 RAM이 필요함)를 완료하고 완료되면 (1-2 시간이 소요될 수 있음) GAE 데이터 저장소? (따라서 사용자가 참여하지 않는 내부 "오프라인"프로세스입니다).Google App Engine의 메모리 사용량

Google에서 메모리 할당량에 대해 언급하지 않았기 때문에 약간 혼란 스럽습니다.

감사합니다.

답변

8

당신이 계획하고있는 방식으로 오프라인 처리를 수행 할 수 없습니다. 앱에서 사용할 수있는 메모리 양에는 제한이 있지만 주요 문제는 아닙니다. 앱 엔진의 모든 처리는 요청 처리기에서 수행됩니다. 즉, 앱이 원하는 모든 작업은 마치 웹 요청을 처리하는 것처럼 작성됩니다. 이 핸들러는 각각 30 초의 실행 시간으로 제한됩니다. 프로세스가 더 오래 실행하려고하면 프로세스가 종료됩니다. 앱 엔진은 무거운 계산을 수행하지 않고 웹 요청을 처리하도록 최적화되어 있습니다.

이 모든 것이 계산 작업을 30 초 청크로 분해하고 중간 결과를 데이터 저장소 또는 memcache에 저장할 수 있습니다. 이 경우 cron 작업 또는 작업 대기열 (둘 다 앱 엔진 문서에 설명되어 있음)을 사용하여 데이터 처리가 완료 될 때까지 처리 처리기를 계속 호출 할 수 있습니다.

요약하면 네가 원하는 것을 할 수도 있지만 문제가되지 않을 수도 있습니다. 계산 집약적 인 작업을 수행하려면 Amazon EC2 또는 Hadoop과 같은 다른 클라우드 솔루션을 살펴보십시오.

+0

여기에 설명되어 있습니다. 고마워요! btw - 내 필요에 무료 인 GAE를 선호합니다. 제 이해에서 아마존은 처음부터 당신에게 요금을 부과합니다. 또한 Hadoop을 고려해 보았습니다. Amazon + Hadoop은 아마도 좋은 솔루션 일 수 있지만 Hadoop만으로는 소프트웨어가 아니며 인프라가 여전히 필요하기 때문에 혼자 힘으로 도움이되지 않습니다. 그러나 계산 시간이 큰 관심사가 아니기 때문에 Hadoop은 우선 순위 목록에 없습니다. 컴퓨터에서 오프라인으로 계산을 수행하고 모든 결과를 CSV 파일에 저장 한 다음 GAE 데이터 저장소에 업로드한다고 생각합니다. – user247866

+0

stax.net 해봐야한다. 지금 사용하고있다. 그냥 괜찮아. – Roch

+0

@mnml - 포스터는 무료 솔루션을 원했다. stax.net은 아직 가격을 나열하지 않으며 베타 버전에서 벗어날 때 무료 옵션이 제공된다고 언급하지 않습니다. –