我有一个目前部署在jetty8中的web应用程序,它基于jsf2,球衣和氛围。我想迁移到GAE,但以下问题出现在我身上:将jetty8 web应用程序迁移到Google应用程序引擎
GAE是否支持jetty8?
有一个servlet每天定期执行数据库清理任务。为了做到这一点,任务会在开始时产生并延迟循环,以便每24小时运行一次。 我读过GAE不允许产生任务。有没有另外一种方法可以做到这一点,并得到GAE的支持?
我有一个目前部署在jetty8中的web应用程序,它基于jsf2,球衣和氛围。我想迁移到GAE,但以下问题出现在我身上:将jetty8 web应用程序迁移到Google应用程序引擎
GAE是否支持jetty8?
有一个servlet每天定期执行数据库清理任务。为了做到这一点,任务会在开始时产生并延迟循环,以便每24小时运行一次。 我读过GAE不允许产生任务。有没有另外一种方法可以做到这一点,并得到GAE的支持?
我不知道GAE是否支持Jetty的8版本,但它运行在Jetty实例上。
你必须考虑GAE的多为PAAS(平台即服务),比IAAS(基础设施即服务)提供商。你必须看看他们提供的服务,并检查它们是否符合你的要求。对于特定的框架兼容性,请参阅What Is Google App Engine?以获取一般概述或Java Enterprise Edition (Java EE) Technologies。 GAE不是常见的JRE,它有一套有限的支持类:The JRE Class White List。这可能进一步限制兼容性。我不知道Atmosphere是否在运行。我不知道你需要什么Jetty 8细节。 WebSockets的?不,您可以改用频道:The Channel API (Java)。
长时间运行的任务不允许你这样做(24小时延迟)。但您可以开始计划任务,请参阅:Scheduled Tasks With Cron for Java。
请求的执行时间有限(60秒),因此您无法以这种方式运行长时间运行的任务。但是你可以产生更长时间的运行(10分钟)后台任务,请看这里:The Task Queue Java API。请致电quotas。由于他们会惩罚某些应用程序行为,因此您需要将您的应用程序改编为此。这可以完全改变你的应用程序设计!
根据我的经验,迁移到GAE是一个激烈的参与。 GAE不适合作为其他主机解决方案的替代品。如果您希望IAAS提供商(如Amazon EC2)更适合。
所有好的信息,只有一个更正 - 用户请求现在被限制为60秒而不是30秒。
还应当指出,有下列限制:
您打算如何将您的数据模型迁移到GAE数据存储? GAE数据存储实际上不适合基于JPA/JDO的模型,因为它与常规关系数据库有很大不同。
谢谢,我纠正了这一点。 – 2012-02-08 16:51:08
谢谢!GAE数据存储是另一个问题。但我主要关心的是jetty8和JSF2(我正在用primefaces使用mojarra实现) – maxqua72 2012-02-09 14:32:26
像往常一样感谢。清楚并且重点。 – maxqua72 2012-02-09 14:35:32