如何通过Java/Python网络定时任务保持App Engine/Java应用持续运行?
- App Engine 允许你有 30 秒的时间来加载你的应用程序。
- 我的应用程序大约需要 30 秒,有时候更多,有时候更少。我不知道该怎么解决这个问题。
- 如果应用程序闲置了一段时间(没有收到请求),它就需要重新加载。
所以,为了避免应用程序需要重新加载,我想通过定期给应用程序发送请求来模拟用户活动。
但这里有个问题……
如果我给应用程序发送请求,而它已经被 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 内置的定时任务功能来保持你的应用程序一直运行。