2015-07-28 177 views
0

因此,可以将java web应用程序部署到Google App Engine (GAE),但是如何在GAE上托管标准的Java应用程序?我为我的公司编写了一个必须全天候运行的应用程序,该应用程序基本上监视特定电子邮件的收件箱并执行所需的处理。Google App Engine上的Java应用程序?

是否可以将这样的应用程序移植到可部署在GAE上的Web应用程序?或者GAE只为RESTful应用程序设计?

如果这不可能通过GAE,我们应该给Google Compute Engine一看吗?

+2

什么是*标准Java应用*?它是一种带GUI的桌面应用程序吗?完全可以通过单独的GAE(cron作业,任务等)来实现你所描述的内容,但它并不打算简单地托管未使用GAE开发的应用程序。您可能需要完全重写应用程序,以便以GAE运行,或者简单地按照您自己的建议查看GCE(或其他IaaS)。 –

+0

对不起,我是指通过'java'二进制/命令运行的命令行java应用程序。该应用程序使用JavaMail等Java库。 – prettyvoid

+0

是的,即使使用命令行应用程序,同样的东西也适用,您可能需要重写应用程序的某些部分,以便在GAE中运行,或者可能不会做任何更改,只需在GCE中运行即可。 –

回答

3

可以将此应用程序移植到GAE,但您需要做一些额外的工作 - 例如使用Cron设置计划任务,以便定期执行应用程序的逻辑。

使用Google Compute Engine,您很可能只需运行该应用程序而无需多次修改,但您可能会花费更多精力来设置和维护运行应用程序的GCE VM。

+0

当我在台式机上运行应用程序时,应用程序会一直运行(监视),直到关闭它。我不想每X次执行一次逻辑。该应用程序必须始终保持运行状态。这对Cron来说还是可能的吗?如果所有这些仍然有可能,那么应用程序可以根据需要创建多个线程,这是一个问题吗?我需要知道这是为了帮助公司决定更好的(GAE或GCE)是否适合他们的需求。 – prettyvoid

+0

如果应用程序正在监视邮箱,那么它本质上会运行循环检查邮箱的内容。如果您设置一个Cron作业来每隔1秒检查一次邮箱的内容,则效果将与在循环中运行代码的效果相同。 – yole

+0

GAE对创建线程也有一定的限制。您可以阅读更多关于这些限制的信息(https://cloud.google.com/appengine/docs/java/#Java_The_sandbox)。 – yole

相关问题