2010-03-14 71 views
2

有没有一种方法我可以计算出当前的请求到达应用程序引擎的时间的时间?谷歌应用程序引擎 - 找出当前请求达到app引擎

例如,用户可能向我的应用程序发出请求,但由于应用程序引擎延迟,我的代码可能无法在一秒钟后开始处理请求,是否有方法可以确定用户已经不得不等一秒钟?

我想知道如何做到这一点的原因是因为我想要做的基础上,如果用户已经不得不等待不同的事情。如果用户已经不得不等待很长时间,那么我只会为他们提供一页缓存,如果用户不必等待,那么我会为他们提供一个需要一段时间才能呈现的页面。

回答

1

短期和不令人满意的回答你的问题是,不,你不能找出多久用户等待。

有在服务器时钟的一致性的应用程序引擎没有保证。您可以尝试计算从客户端时钟到服务器时钟的漂移,并将该漂移作为参数与客户端时间戳一起提交。但是,由于不能保证服务器内部的时间一致性,因此该漂移仅适用于您计算的服务器。我相信你能得到的最接近的是从服务器计算出的基于几个延迟样本和返回时间戳的漂移时间,但只要服务器改变你的计算就不再准确。

简单的采样时间时,请求到达时不会帮助你要么以来,特别是在应用程序引擎的冷启动将导致延迟增加无法通过你的代码是衡量。

+0

你的答案是照明,但如果你说“漂移”我想你的意思是“增量”。对于这个问题,漂移可能会被忽略。 – Tom 2013-01-21 16:56:15

0

您可以发送带请求的时间戳参数并测量差异,但要确保您必须从服务器发送时间戳,在客户端中增加时间戳,将其发回,计算时间戳之间的差异和服务器上的当前时间,将其分为2(因为您有2个请求,一个设置时间戳,一个检索它)。但这只是粗略的计算。