2015-07-28 220 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

相關問題