2011-08-04 4 views
4

시작 처리기에서 대기열을 사용하는 백엔드가 있습니다. 대기열이 모두 소모되면 시작 처리기가 중지됩니다. 시작 핸들러가 끝나면 백엔드가 멈추기를 바란다. 이 큐에 항목을 추가하면 백엔드에 요청을 보낼 다른 코드가 있습니다. 이러한 요청은 GAE가 큐를 소비하기 시작할 수 있도록 백엔드를 시작하도록하는 역할을합니다.시작 핸들러가 끝날 때 Google App Engine 동적 백엔드를 명시 적으로 중지하는 방법은 무엇입니까?

백엔드가 시작 처리기가 완료되었지만 백엔드가 유휴 상태 인 상태가되는 것을 원하지 않습니다. 백엔드에 대한 다음 요청에서 GAE가 백엔드를 다시 시작하게하여 시작 핸들러를 다시 호출하고 큐를 소비하기 시작하도록 중지하도록합니다.

어떻게이 목표를 달성 할 수 있습니까?

답변

1

백엔드는 프로그래밍 방식으로 (현재) 시작 및 중지 할 수 없습니다. 그것은 당신이 원하는 것처럼 들리지만, 설명 된 것과 똑같이 동작하는 정규 작업 큐 작업입니다.

+0

태스크 대기열이 멱등 (Idempotent)이어야하고 모든 경우에 FIFO를 보장하지 않기 때문에 백엔드를 선택했습니다. – Gabriel

+0

@DataSurfer 그러나 백엔드가 작업 대기열을 사용하고 있으므로 동일한주의 사항이 적용됩니다. –

+0

이 경우 작업 대기열을 사용하지 않고 데이터 저장소의 대기열 구조를 사용하며 상태가 활성이고 항목이 타임 스탬프로 정렬 된 항목은 상태가 닫힘으로 설정 됨 – Gabriel

0

백엔드를 동적 백엔드로 구성하면 "트리거"요청이 처리 된 후 백엔드가 자동으로 중지됩니다. 다음 15 분 내에 "트리거 시작"요청을 다시 보내지 않으면 백엔드가 자동으로 종료됩니다. 유감스럽게도 백엔드가 15 분 동안 유휴 상태 임에도 불구하고 가동 시간은 최소 15 분 동안 지불해야합니다. 난 내 애플 리케이션에서 당신이하고있는 일을 정확하게하고있다. 백엔드가 시작되고 풀 대기열에서 작업을 임대하기 시작하며 풀 대기열이 비어있을 때 유휴 상태가된다. 1 시간에 한 번씩이 작업을 수행하므로 매일 24 시간 = 8 시간의 백엔드 가동 시간을 지불해야합니다. 이것은 9 시간 할당량보다 적기 때문에 (지금은) 행복합니다.