2012-08-11 3 views
0

GAE의 작업, 작업 대기열 (푸시와 푸시 모두), Cron 작업 및 각각의 프론트 엔드와 백엔드 인스턴스와의 관계에 대해 매우 혼란 스럽습니다.Google App Engine : 대기 작업과 Cron 작업

일부 HTTP 요청은 즉시 처리 될 수 있지만 일부는 대기열에 들어갈 수있는 상황을 조성하려고합니다. 대기열에있는 요청은 궁극적으로 자신의 코드가 실행되면 (실행되면) 실행되거나 GAE 서비스 API (LogQuery 등) 중 하나에 충돌 할 수 있습니다.

나는이 두 시나리오를 어떻게 설계 할 것인가에 대해 머리를 감싸지 않고 혼자서 코드를 작성하지 않을 것 같습니다. 문제를 악화 시키려면 코드가 프론트 엔드 또는 백엔드 인스턴스에서 실행 중인지 여부에 따라 다르게 수행하려는 특정 작업/대기열 관련 코딩이 있음을 알리는 자료를 읽었습니다. 어떤 도움을 주셔서 미리 감사드립니다! 구체적인 예를 들어 보너스 포인트!

답변

0

코드를 작성하면 Tasks와 Cron이 코드를 작성합니다.

작업은 속성 집합에 대한 래퍼입니다. 주 속성은 실행해야하는 URL입니다. 당신은 코드 (핸들러, 서블릿)가 해당 URL에 있어야합니다. Task는 TaskQueues에 앉아 있습니다. TaskQueues는 속도, 병렬 처리 수 등의 기본 속성을 가지며 Tasks를 실행합니다. 기본적으로 To-Do 목록은 작업이 시작될 때 보장없이 작업을 순차적으로 실행합니다.

Cron은 사용자가 제공 한 URL을 주기적으로 호출하는 서비스입니다. 의미에서 그것의 스케줄러.

사용자의 처리기/서블릿은 프론트 엔드 인스턴스 (기본값) 또는 백엔드 인스턴스 (작업 또는 Cron 설정의 특수 속성을 설정해야 함)에 상주 할 수 있습니다. 가장 큰 차이점은 프론트 요청은 10 분 내에 완료되어야하며 백엔드 요청은 무한정 소요될 수 있다는 점입니다.

+0

작업에 대해 ETA 또는 카운트 다운을 정의 할 수 있습니다. – proppy