2010-03-14 2 views
2

현재 요청이 앱 엔진에 도달 한 시간을 파악할 수있는 방법이 있습니까?Google App Engine - 현재 요청이 앱 엔진에 도달 한 시간을 알아 내십시오.

예를 들어 사용자가 내 앱을 요청할 수 있지만 앱 엔진 대기 시간으로 인해 코드가 요청을 처리하지 못할 때까지 1 초 후 사용자가 이미 알아야 할 방법이 있습니다. 잠깐만 요?

내가이 작업을 수행하는 방법을 알고 싶은 이유는 사용자가 이미 기다렸다가 다른 작업을 수행하기 때문입니다. 사용자가 이미 상당한 시간을 기다려야한다면 캐시에서 페이지를 제공 할 것입니다. 사용자가 아직 기다리지 않아도된다면 렌더링하는 데 시간이 걸리는 페이지를 제공 할 것입니다.

답변

1

귀하의 질문에 대한 짧고 만족스럽지 않은 대답은 아니오입니다. 사용자가 얼마나 오래 기다렸는지 알 수 없습니다.

앱 엔진에 서버 시계의 일관성에 대한 보장은 없습니다. 클라이언트 시계에서 서버 시계로의 드리프트를 계산하고 클라이언트 시간 소인과 함께 매개 변수로 해당 드리프트를 제출할 수 있습니다. 그러나 서버 간 시간 일관성이 보장되지 않으므로 해당 표류는 계산 한 서버에만 적용됩니다. 가장 가까운 것은 지연 시간과 반환 된 타임 스탬프의 샘플을 기반으로 서버에서 계산 된 드리프트 시간이지만, 서버가 변경되면 더 이상 정확한 계산이되지 않습니다.

요청이 도착한 시간을 간단히 샘플링해도 도움이되지 않습니다. 특히 앱 엔진의 콜드 스타트로 인해 코드에서 측정 할 수없는 대기 시간이 길어 지므로 특히 도움이되지 않습니다.

+0

당신의 대답은 밝게 보이지만, 당신이 '드리프트'라고 말하면 나는 '델타'를 의미한다고 생각합니다. 드리프트는 아마도이 문제에 대해 무시 될 수 있습니다. – Tom

0

요청과 함께 타임 스탬프 매개 변수를 전송하고 차이를 측정 할 수 있지만 결과를 확인하려면 서버에서 타임 스탬프를 보내고 클라이언트에서 값을 늘리면 다시 보내고 타임 스탬프 간의 차이를 계산해야합니다 서버의 현재 시간을 2로 나눕니다 (요청이 2 개, 시간 소인을 설정하고 나머지 하나를 검색). 하지만 이것은 대략적인 계산 일뿐입니다.