2011-03-26 220 views
2

我目前正在開發一個小型愛好項目(開放源碼https://github.com/grav/mailbum),它很簡單地從Gmail帳戶獲取圖片並將其放入Picasa Web上的相冊中。適合Google App Engine的項目?

因爲它是(目前)只處理與谷歌託管的數據,我在想收留了它在谷歌應用程序引擎,但我不知道這是否是非常適合GAE:

  • 威爾最大執行時間會成爲問題?根據http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html,目前爲10分鐘,但我認爲這些任務(即處理單個郵件)可以很容易並行運行。我也猜測,處理Google託管的數據在GAE上會非常有效?

  • 它是用Clojure編寫的事實是一個障礙嗎?我已經研究了一點讓Clojure在GAE上運行,但我從來沒有嘗試過。任何針腳指針?

感謝您對該項目的任何建議和想法!

回答

4

看起來你的應用程序在GAE上是可行的。我的關注點是:

  1. 您的代碼是否曾經將它正在處理的圖像存儲到臨時文件中?如果是這樣的話,需要將其更改爲在內存中執行所有操作,因爲GAE應用程序是沙盒式的,不允許寫入文件系統(如果您需要臨時持久性存儲,則可以在寫入文件數據的位置GAE數據存儲區中的BLOB字段)。

  2. 如何將圖像導入Picasa Web?如果他們提供了一個簡單的REST/HTTP API,那麼一切都很好。如果你需要更多的東西(比如一個原始的TCP套接字),那麼它將無法工作。

  3. 10分鐘的執行時間限制僅適用於後臺任務。實際提供Web請求時,時間限制爲30秒。因此,如果您爲應用程序提供基於Web的界面,則需要對結構進行組織,以便界面只調度在後臺運行的作業(即,作爲服務Web請求的一部分,您無法直接觸發作業) 。

如果這些聽起來都不像你的show-stoppers,那麼我認爲你的應用程序應該在GAE上工作得很好。

雖然Clojure可以工作,但實際上並不能說。然而,我過去花時間讓一些第三方庫在App-Engine上工作。通常,我所要做的只是刪除/修改/禁用訪問沙箱禁止的功能的庫的任何部分(例如,我必須禁用自動緩存到磁盤才能使commons-fileupload在GAE上工作)。不知道是否同樣適用於Clojure,或者甚至在這樣的任務中範圍會是什麼。

+0

** 1。**不,數據只是兩個服務之間的數據流,因此不會創建臨時文件。 ** 2。** Picasa通過HTTP API訪問,但Gmail通過IMAP訪問。沒有想過這個限制,這可悲的是看起來像一個表演停止。 ** 3。**感謝您對此的澄清。 – Grav 2011-03-31 14:20:31

0

我一直在討論Clojure和App Engine一段時間,我不得不推薦appengine-magic。它將大部分Java內容抽象出來並且非常易於使用。此外,該項目似乎非常活躍。

+0

感謝您的鏈接,絕對聽起來很有趣。 – Grav 2011-03-31 14:27:23