我目前正在开发一个小型业余爱好项目(开源于https://github.com/grav/mailbum),该项目非常简单地从Gmail帐户中获取图片并将其放入Picasa网络上的相册中。
由于(目前)只处理Google托管的数据,我考虑在Google App Engine上托管它,但我不确定它是否适合GAE:
最长执行时间是否有问题?根据{{3}},它目前是10分钟,但我认为任务(即处理单个邮件)很容易并行运行。我也猜测在GAE上处理Google托管的数据会非常有效吗?
用Clojure写的这个事实会成为一个障碍吗?我已经研究了让Clojure在GAE上运行,但我从未尝试过。任何针脚指针?
感谢您对该项目的任何建议和想法!
答案 0 :(得分:4)
看起来你的应用程序在GAE上是可行的。我的关注点是:
您的代码是否会将正在处理的图像存储到临时文件中?如果是这样,它将需要更改为内存中的所有内容,因为GAE应用程序是沙盒并且不允许写入文件系统(如果您需要临时持久存储,您可能能够在将文件数据写入的地方工作GAE数据存储区中的BLOB字段。
如何将图片导入Picasa网络?如果他们提供简单的REST / HTTP API,那么一切都很好。如果你需要更多涉及的东西(比如原始的TCP套接字),那么它将无法工作。
10分钟的执行时间限制仅适用于后台任务。实际处理Web请求时,时间限制为30秒。因此,如果您为应用程序提供基于Web的界面,则需要对事物进行结构化,以便界面只调度在后台运行的作业(即,您无法直接在作为Web请求服务的一部分时启动作业)
如果这些听起来都不像是show-stoppers,那么我认为你的应用程序应该可以正常使用GAE。
不能说Clojure是否会起作用。但是,我过去花了一些时间让一些第三方库在App-Engine上工作。通常,我所要做的就是删除/修改/禁用访问沙箱禁止访问的功能的库的任何部分(例如,我必须禁用自动缓存到磁盘以使commons-fileupload
能够在GAE上工作)。不确定是否同样适用于Clojure,甚至是适用于此类任务的范围。
答案 1 :(得分:0)
我已经和Clojure和App Engine讨论了一段时间了,我不得不推荐appengine-magic。它抽象了大部分Java内容,并且非常易于使用。作为一个加号,该项目似乎非常活跃。