在哪里托管定期运行的Python或Java服务?
我打算建立一个小服务,用来监控一个IMAP邮箱账户,并处理已读的邮件。这个服务每10分钟运行一次就行,不需要外部的触发,但我想把这个服务放在外面托管(这样我就不用担心它的运行时间了)。
为了让这个服务不依赖于特定的机器,我可以用Java或Python来写。有哪些好的托管服务提供商呢?而这两种语言哪个支持得更好呢?
这个服务要么一直运行(自己处理等待),要么每10分钟启动一次。我猜大多数(网络)托管服务都是针对请求驱动的代码(比如JSP),而且我认为他们会关闭那些一直运行的进程。谁提供像上面提到的这种用户编写的服务的托管呢?
3 个回答
你可以看看 Google App Engine。在这里,你可以为你的Java或Python脚本设置一个定时任务。
你真幸运,因为Google AppEngine为Python和Java都提供了定时任务功能。你可以查看这两个链接了解更多信息:GAE - Python 和 GAE - Java
根据你需要的操作和对资源的要求,Google App Engine(GAE)可能非常适合用来运行Python和Java服务(GAE对这两种语言的支持都不错)。你可以设置定时任务每10分钟运行一次(我给的链接展示了如何用Python实现这一点),如果某次需要处理的工作超过GAE支持的30秒限制,你还可以排队更多的任务。
GAE特别适合初学者和实验,因为它对大多数资源提供了相对慷慨的免费配额(不过你需要启用计费,提供信用卡信息,并设置预算,这样你的任务才能使用超过免费配额的资源)。
如果你觉得GAE的限制让你无法忍受,或者使用资源的费用超过了免费配额,任何支持类Unix定时任务调度的主机提供商都是可以接受的。每10分钟启动一个Python脚本可能比启动一个Java虚拟机(JVM)要快,但这取决于你每10分钟需要做什么(对于某些任务,Python可能和JVM一样快,甚至更快;而对于其他任务,Python可能会慢一些,我们无法猜测你需要什么样的任务,或者在什么情况下更快的JVM会“弥补”它的启动时间,反正你需要自己评估一下!)。