3
  1. App Engine 允许您在 30 秒内加载您的应用程序
  2. 我的申请大约需要 30 秒 - 有时更多,有时更少。我不知道如何解决这个问题。
  3. 如果应用处于空闲状态(一段时间没有收到请求),则需要重新加载。

因此,为了避免需要重新加载应用程序,我想通过每隔一段时间 ping 应用程序来模拟用户活动。

但有一个问题。. .

如果我 ping 应用程序并且它已被 App Engine 卸载,我的网络请求将是应用程序的第一个请求,并且应用程序将尝试重新加载。这可能需要超过 30 秒的时间并超过加载时间限制。

所以我的想法是 ping 应用程序但不等待响应。我通过从浏览器访问该站点,发出请求并立即关闭浏览器来手动模拟这一点 - 它似乎使应用程序保持活动状态。

关于在 Python 或 Java web cron 中执行此操作的好方法的任何建议(我假设 Python 解决方案会更简单)?

4

4 回答 4

2

使用App Engine 内置的 cron来保持应用程序运行可能会更容易。

于 2009-07-11T10:15:49.730 回答
1

最简单的 Java http pinger:

URLConnection hcon = new URL("http://www.google.com").openConnection();
hcon.connect();
hcon.getInputStream().read();
于 2009-07-11T09:12:07.613 回答
1

我想你想要的只是:

import httplib
hcon = httplib.HTTPConnection("foo.appspot.com")
hcon.request("GET", "/someURL")
hcon.close()
于 2009-07-11T06:44:31.030 回答
1

App 引擎还有一个新的 PAY 功能,您可以让它“永远在线”。每天的费用约为 0.30 美分。如果您不介意为该功能付费,只需进入您的计费设置并启用它。我相信它可以保证您至少有 3 个实例始终运行。

(我没有意识到点击导致实例旋转的 /ping url 会导致它超过 30 秒的限制!)

于 2011-01-16T17:52:55.457 回答