2014-10-19 2 views
0

내가하고 싶은 많은 작업에는 호스트 된 환경에서 실행하고 사용자가 장기 실행 작업의 결과를 볼 수있는 웹 인터페이스를 제공하려는 장기 실행 프로세스가 포함됩니다. (App Engine Modules with GWT, Possible to use Google Modules with Google Plugin for Eclipse?, How use Eclipse to develop Google Modules for Google Cloud? 참조) 작업 대기열과 GWT를 사용하는 Google App Engine 프로젝트를 설정하려면 어떻게해야합니까?

나는 이것에 대한 좋은 서비스의 "모듈"기능 ( https://cloud.google.com/appengine/docs/java/modules/)와 구글 앱 엔진을 생각하지만, 나는이 목적을 설정하는 방법을 알아 내기 위해 애 쓰고있다. 누군가는 똑같은 일을 시도했을 수도 있습니다 (참조 : how to create gwt gae with app engine modules using google eclipse plugin). 그러나 대답이 없으며보다 포괄적 인 지침을 찾고 있습니다.

누군가 다음 단계의 프로젝트 아키텍처와 관련된 다음 Hello World 프로젝트를 설정하기위한 단계별 지침을 제공 할 수 있습니까?

요구 사항

  • 사용자가 웹 페이지 방문 및 유형 작업 이름, 예를 들어, "Hello World"와 결과를받을 이메일 주소.
  • 그러면 Google App Engine은 장시간 실행 (예 : https://cloud.google.com/appengine/docs/java/modules/에 설명 된대로 Scaling Type "자동"모듈의 10 분 제한 시간보다 훨씬 긴 10 시간)을 계산합니다.
  • Google App Engine은 사용자에게 "Hello World"계산이 완료되었음을 알리는 이메일을 보내고 결과를 이메일 메시지 본문에 제공합니다.
  • 모듈 1 (스케일링 유형 = 자동 :

프로젝트 아키텍처

  • 웹 프런트 엔드 (App Engine Modules with GWT 여기에 설명 된대로 문제가 될 수 있기 때문에 이상적으로 GWT하지만 적당한 대안을 제시)) : 사용자가 제공 한 이름으로 Google 작업 대기열에 작업을 추가하여 웹 프런트 엔드 요청에 응답합니다. 전자 메일 주소는 작업 이름과 동일한 기본 키를 사용하여 Google Datastore에 기록됩니다 (두 모듈이 동일한 데이터 저장소를 공유하는 방법을보고 싶습니다. 여기에 설명되어 있습니다 : Serving multiple GAE modules from one development server?). 더 많이보고 싶습니다. 세부 묘사).
  • 모듈 2 (크기 조정 유형 = 기본 크기 조정) : Google 작업 대기열에서 작업을 선택하고 장기 실행 계산을 수행 한 다음 결과를 전자 메일로 보냅니다. 전자 메일 주소는 작업 이름을 사용하여 데이터 저장소에서 찾아서 가져옵니다.

개발 환경

+0

Jarrod, http://stackoverflow.com/questions/1759387/google-app-engine-task-queue-on-gwt에 대한 링크를 제공해 주셔서 감사합니다. 내가 다루고있는 또 다른 복잡성은 유사한 질문이 제기되었을 때 2009 년에는 없었던 Google 모듈을 통합하는 방법입니다. –

답변

0
  1. 첫 번째 모듈은 GWT 응용 프로그램입니다. 그것은 사용자 인터페이스를 제공합니다.

  2. 사용자가 요청을 시작하면 동일한 모듈 내의 서비스 중 하나에 표준 RPC 호출을 수행합니다. 이 서비스 내에서 Task API를 사용하여 작업을 작성합니다. 이 작업에는 두 번째 모듈을 가리키는 target parameter이 포함됩니다.

또는 두 번째 모듈에 직접 REST 호출을 할 수 있습니다.

  1. 두 번째 모듈은 일반 Java입니다. GWT가 필요하지 않으며 App Engine의 의미에서 별도의 애플리케이션이 아닙니다. App Engine Mail API을 사용하여 작업을 실행하고 사용자에게 결과를 이메일로 보냅니다.

이 설정을 만들려면 Eclipse에서 특별한 것이 필요하지 않습니다. 기존 프로젝트에 EAR이라는 새 디렉토리를 만들고 구성 파일을 여러 개 만들거나 복사하면됩니다. Modules Configuration에는 자세한 방법이 나와 있습니다. 백엔드에 익숙하다면 Converting backends to Modules을 읽어서 프로세스를 이해하는 것이 더 쉽습니다.

모듈 당 하나씩 두 개의 별도 Eclipse 프로젝트를 작성할 수 있지만 필요하지는 않습니다. 각 모듈마다 별도의 소스 디렉토리를 사용할 수 있습니다. 당신이 당신의 모듈 "gwtapp"과 "백엔드"프로젝트에 다음 패키지를 만들 수 있습니다 이름을 예를 들어, :

gwtapp.src.com.myproject... 
backend.src.com.myproject... 

그런 다음 빌드 경로 (프로젝트 특성> Java 빌드 경로를) 열을 소스 탭을 클릭합니다 , 폴더 추가를 차례로 클릭합니다. 두 개의 폴더를 추가하십시오.

gwtapp/src 
backend/src 

프로젝트에 추가하십시오. 각 프로젝트에 대해 다른 출력 폴더를 선택하십시오 : gwtapp/srcMyProject/ear/gwtapp/war/WEB-INF/classes을 가리키고, backend/srcMyProject/ear/backend/war/WEB-INF/classes을 가리 킵니다. 물론이 단계를 수행하기 전에 이러한 폴더 (각각 ear/gwtapp/war/WEB-INFear/backend/war/WEB-INF)를 만들어야합니다.

+0

안드레이, 도와 줘서 고마워.Eclipse 용 Google 플러그인을 사용하여 GWT 앱을 만들 수 있습니까? 그런 다음 EAR 디렉토리 (등)를 추가합니까? 나는 http://stackoverflow.com/questions/23259113/how-to-create-gwt-gae-with-app-engine-modules-using-google-eclipse-plugin 때문에 두려워하지 않습니다. Maven을 사용하여 초기 프로젝트를 만드는 것이 나을까요? –

관련 문제