문제

내가 사용한 소프트웨어 개발 google app engine.

나는 몇 가지 고려사항에 대한 최적의 디자인에 관한 다음과 같은 문제점을 해결합니다.이 필요를 만들고의 스냅샷을 저장 일부 단체는 정기적인 간격으로.

에서 기존의 관계 db,세상을 만들 것입 db 작업하는 것을 삽입하는 새로운 요약 기록합니다.

예를 들어,일 삽입하는 기록을 위한 모든 활성 사용자는 자신의 현재 점수를"userrank"테이블,말,매 시간마다.

나는 무엇을 알고 가장 좋은 방법 이를 달성하기 위해 google app engine.내가 알고 있는 것은 Cron 서비스,그러나 그것은 우리를 작업을 실행하는 것이 삽입 업데이트/수천 개의 레코드가?

도움이 되었습니까?

해결책

당신이 사용하는 원격 api 까요?이 방법은 당신이 얻을 수있는 쉘의 데이터 저장소 및 피해 시간이 초과되었습니다.매퍼 클래스들에서 보여주는 링크 매우 유용하며 사용했던 그것을 성공적으로 하는 배치에 대한 작업~1500 개체입니다.

는 말했다,cron 작업해야 합무 문제가 없다는 것입니다.당신이 할 수 있는 시간에 대한 제한 각 개인의 요청에게 씹는 모든 이들을 통해 한 번에 있지만,당신이 사용할 수 있는 리다이렉션을 반복으로 많은 사용자로,당신이 원하는 처리를 한 번에 한 명의 사용자.이 있어야의 예를 이 문서에서 어딘가에 도움이 필요한 경우 이 접근 방식이다.

다른 팁

매시간 모든 사용자의 상태를 스냅 샷을 찍는 것은 프레임 워크에 관계없이 확장 할 수있는 것이 아니라는 것을 알게 될 것입니다. 보다 평범한 환경은 더 긴 실행 작업을 수행함으로써이를 위장 할 것이지만, 매 시간마다 모든 사용자의 데이터를 스냅 샷을 찍는 것이 실용적이지 않은 지점에 도달하게 될 것입니다.

내 제안은 다음과 같습니다. '마지막 스냅 샷'필드를 추가하고 모델의 put () 함수를 서브 클래스 (Python을 사용하고 있다고 가정합니다. Java에서는 가능하지만 구문을 모릅니다). 레코드를 업데이트 할 때마다 마지막 스냅 샷 이후 1 시간 이상인지 확인하고 그렇다면 스냅 샷 레코드를 작성하고 작성합니다.

동시 업데이트를 방지하기 위해 두 개의 동일한 스냅 샷을 생성하기 위해 스냅 샷에 스냅 샷을 가져온 시간부터 파생 된 키 이름을 제공 할 것입니다. 이렇게하면 두 개의 동시 업데이트가 스냅 샷을 작성하려고하면 하나는 다른 하나를 무해하게 덮어 씁니다.

주어진 시간 동안 스냅 샷을 얻으려면 요청 된 기간보다 가장 오래된 스냅 샷에 대해서는 간단히 쿼리하십시오. 추가 보너스로서, 비활성 레코드가 스냅 샷을 찍지 않기 때문에 많은 공간을 절약 할 수 있습니다.

나는 조합하여 사용 Cron 작업하고 반복되는 url 을 가져 오는 방법에는 여기에서 자세히 설명: http://stage.vambenepe.com/archives/549.이 방법으로 잡을 수 있습니다 당신의 시간 제한과 또 다른 시작한 요청을 합니다.

요약 문서,cron 작업 통화를 당신의 초기 프로세스가 완료되면,당신이 잡을 시간 제한 오류를 호출 프로세스를 다시,마스크로 url.당신은 핑 두 Url 을 응용 프로그램을 유지하는 엔진에서 생각하고 당신은 실수 반복입니다.당신은 또한주의해야 하지 않는 무한 루프.이 있는지 확인 종료 상태에 대한 업데이트 루프 것이기 때문에 넣어 당신이 당신의 할당량이 매우 빠르게 경우에는 종료되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top