试用Google App Engine

    最近刚好聊起一个有关Google的话题,突然想起Google App Engine的帐号申请下来之后除了一个Hello World就没再用过了,就决定试用一下,也不枉申请一回;

    做试用的这个App没什么难度,只是通过用Cron Job定时每天在新闻网站上抓取数据,用SAX过滤出想要的内容,再提交到一个BBS上,所以主要还是共享一下在做App时遇到的一些问题,希望能给也遇到相同问题的朋友做个参考:
    1) App Engine上的应用有一个限制:应用程序代码仅在响应网络请求或 cron job 时运行,且任何情况下必须在 30 秒钟内返回响应数据。刚开始没看到这个,把所有的逻辑都写到一个servlet里了,在本地环境测试OK,一deploy到Engine上,就不行了,最后只能重写,尽量保证应用的响应时间在10秒以内;
    2) 同样一个本地环境测试通过,一但Deploy就不行的问题:在对一个URL进行Fetch的进候,老是会报IOException,追进去之后是在url.openConnection()老是“Can not fetch this URL”,最终查出来是在目标URL的php中的ob_start('ob_gzhandler')所导致,不知道为什么AppEgine的URL Fetch跟PHP的gzip压缩会有冲突,没时间去研究,先把该PHP页的gzip关掉,OK,通过;(如果有对这方面原因了解的朋友希望能指点一下: amourguo[at]gmail[dot]com)
    3) 还是一个Deploy之后才出现的问题,看来Google应该解决一下保持本地测试环境和AppEngine的一致性问题,呵呵。在我的一个DB Entry里有一个字段叫作“newsLink”,用JDOQL做Query的时候("select from Xxxx where newsLink == linkParam parameters com.google.appengine.api.datastore.Link linkParam")就会老是报错说找不到一个叫做"sLink"的class,显然它是把newsLink中的new当做关键字了,不知为何,即便是中间没有空格,它也会把newsLink当做new sLink(),而且在SQL中应该是可以用[newsLink]来解决的,但在JDOQL试了证明行不通,最后不得不把这个字段改名了,所以,在JDOQL中,不但不能使用关键字作字段名,最好也不要包含关键字,以减少不必要的麻烦;
    Google App Engine还是不错的,使用多少资源就付多少费用,很合理,只是开发的时候会有诸多的限制,让人略有不爽,不过还好也不影整体的良好感觉,而且根据需要增加或减少对资源的消费这一点上,也符合节能减排的大潮流(-_-|||);GAE算是最早的PaaS(Platform as a Service)的大规模实现之一了,后来Sina也搞了一个SAE,不过帐户是邀请制的,我没有搞到邀请,所以没试过:-p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值