如何通过Java/Python网络定时任务保持App Engine/Java应用持续运行?

3 投票
4 回答
1751 浏览
提问于 2025-04-15 12:50
  1. App Engine 允许你有 30 秒的时间来加载你的应用程序。
  2. 我的应用程序大约需要 30 秒,有时候更多,有时候更少。我不知道该怎么解决这个问题。
  3. 如果应用程序闲置了一段时间(没有收到请求),它就需要重新加载。

所以,为了避免应用程序需要重新加载,我想通过定期给应用程序发送请求来模拟用户活动。

但这里有个问题……

如果我给应用程序发送请求,而它已经被 App Engine 卸载了,那么我的网络请求就会是第一个请求,应用程序会尝试重新加载。这可能会超过 30 秒,超出加载时间限制。

所以我的想法是发送请求,但不等响应。我手动模拟过这个过程,就是在浏览器中打开网站,发送请求,然后立刻关闭浏览器——这样似乎能保持应用程序运行。

有没有什么好的建议,可以用 Python 或 Java 来实现这个定时任务(我觉得用 Python 会更简单)?

4 个回答

1

最简单的Java HTTP ping工具:

URLConnection hcon = new URL("http://www.google.com").openConnection();
hcon.connect();
hcon.getInputStream().read();
1

我觉得你想要的就是:

import httplib
hcon = httplib.HTTPConnection("foo.appspot.com")
hcon.request("GET", "/someURL")
hcon.close()
2

可能更简单的方法是使用App Engine 内置的定时任务功能来保持你的应用程序一直运行。

撰写回答