GAE 채널 API를 재정적으로 실행 가능하게 만드는 유일한 방법은 일종의 풀링 메커니즘을 구현하는 것입니다. (수석 앱 엔진 제품 관리자 중 한 명이 이메일로 엄청난 가격에 대해) 아직 만료되지 않은 채널을 재사용 할 수 있습니다.Google App Engine에서 채널 풀링의 가장 좋은 방법
저는 채널 풀을 구현하는 방법 (장소)에 대해 브레인 스토밍을 해왔지만 각각의 생각에는 꽤 심각한 단점이 있습니다.
서블릿의 정적 메모리 - 새로운 VM 인스턴스가 열리거나 클라이언트가 한 VM에서 다른 VM으로 전달 될 때 꽤 많은 열린 채널이 삭제됩니다.
Memcache를 - 적어도 메모리가 모든 VM에서 세계적으로 액세스 할 수 있지만 지금은 아주 실행 가능한 채널을 포기의 가능성이 비활성 메모리 압력에 의한 가능성이 크다.
백엔드 인스턴스 - 신뢰성면에서 가장 좋은 옵션이지만, 현재 백엔드를 실행하는 데 드는 비용은 처음에는 풀을 구현하는 데 드는 모든 비용을 먹을 것입니다!
내가 누락 된 VM 전체에 채널 풀을 구현하는 더 좋은 방법이 있습니까? 아니면 여기 내 옵션의 단점을 불필요하게 버텨야할까요? 정말 거기에 있기를 바랄뿐입니다. 또는 내 앱이 폴링으로 되돌아 가야 할 것처럼 보입니다. (이는 예비적인 측정 항목에서 조금 더 싸게 보입니다.)
당신이 타임 스탬프 데이터 저장소에서 그들을 저장할 수 있습니다, 다음 만료 된 것들을 삭제하는 크론을 실행? 읽기/쓰기 작업은 당신에게 비용이 많이 들지만 ... –
@Jonathan Newmuis 그래, Memcache 솔루션과 함께 가고 있지만, 언급 한 것처럼 비용도 들지 않습니다. 아마도 그들 중 두 명이 함께 작업하는 것이 가장 실용적인 옵션이 될 것입니다. 누구나이 시도를하는 척도 나 경험이 있습니까? – depthfirstdesigner
소프트웨어가 수행하는 작업에 대한 정보를 추가 할 수 있습니까? – AlfredoVR