`
SimonLei
  • 浏览: 174092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GAE 的一些限制

阅读更多

Google Appengine 提供了很方便的平台,也提供了不少的服务。

但是,也不可避免的添加了不少的限制。除了一些文件大小,数据库

blob大小的限制之外,还有些非常理的限制。今天碰到的就是一个

原来没想到的限制。

 

最开始使用一个 static 变量来存储一些缓存数据,例如数据的count之类的。

后来发现这个缓存根本没有起作用。于是怀疑static 变量无效,搜索了一下,发现

http://stackoverflow.com/questions/4028787/is-it-thread-safe-to-store-data-inside-a-static-field-when-deploying-on-google-ap

 

原来,目前情况下,为每个请求,gae会启动一个新的jvm来提供服务。这样的目的当然

是为了可扩展性,当请求多的时候,可以分布式的用多台计算机的jvm实例来提供服务。

由此带来的问题就是,static变量只有在当前的jvm当中才有效,多个jvm的情况下,就

不起作用了。因此,要使用gae提供的缓存服务来解决这个问题。

 

我当时看到缓存服务的时候还想过,觉得这个缓存服务没有价值,用一个static变量又快

又简单。原来是自己犯傻了,这个缓存服务是跨多个jvm的,简直是gae居家旅行、杀人灭口之必备良药啊。

 

 

0
1
分享到:
评论

相关推荐

    百度的bae跟谷歌的gae对比

    百度的bae跟谷歌的gae对比,百度的资源限制很少,但是资源很少,教程很少。。

    Google App Engine的一些限制

    Google云端的一个重要部分,主要介绍了Google中App Engine的限制。

    jieba-GAE:结巴中文分词 on GAE

    GAE有几个限制: 128M运行内存限制。 脚本执行时间限制。 禁止临时文件。 主要是针对这几个限制进行的处理。 处理后响应时间,免费配额的cpu,可以处理相当数量的请求。 处理后内存占用,刚好落在免费配额限制内。 ...

    gae-cache:Google App Engine(python)永久缓存

    maxsize:GAE对每个缓存条目都有一个限制。 默认值为1000000字节。 您可以设置其他大小:gae_cache将内容分割为1000000字节的块,并使用“ _N”(key_1,key_2,...,key_N)设置缓存键 缓存。 获取(密钥) 缓存。...

    spring-security-saml-gae:项目支持在 Google 应用程序引擎中部署 Spring SAML 应用程序

    由于启动新线程的限制,该实现删除了 GAE 不支持的所有自动重新加载。 实现: org.springframework.security.saml.metadata.provider.StaticFilesystemMetadataProvider 工件分辨率 使用 GAE API 中可用的类,使用...

    gae-fastcounters:Google App Engine的快速计数器库

    计数器值限制在[-2**63, 2**63 - 1] 如果数据库更新间隔未设置为立即更新,则如果计数的非持久部分在持久存储到数据存储之前已从memcache中清除,则计数器可能会计数不足。 默认情况下,更新间隔为10秒。

    blackjack:第一个Python脚本-GAE Blackjack

    二十一点 Google App Engine上的二十一点,具有基于Web的界面。 设置 要运行此程序,需要 。 dev_appserver.py /path/to/blackjack 原料药 API具有以下操作。...有关许可证权利和限制,请参阅文件。

    django-google-cloud-sql:Django Google Cloud SQL

    它有一些限制,没有经过测试,我没有使用它。 远程命令根本不起作用。 不要在生产中使用它。 前提条件 GAE实例已创建 Google SQL Cloud实例已创建 GAE SDK 1.6已安装并正常运行 安装方式: 此安装不包括Django安装...

    gae-rbac:用于 Google App Engine 的基于角色的访问控制

    用于谷歌应用引擎的 RBAC 基于角色的访问控制该模块提供了一个小框架来管理需要某种级别限制的任何内容的权限。 专门设计用于通过 Google App Engine 在 webapp2 中的处理程序内部使用查看 rbac.py 中的所有文档

    ektorp-gaehttpclient

    GAE 将请求限制为 60 秒,并且不允许持久连接 不支持COPY 特征 支持 Ektorp 版本1.4.0和1.4.3 此时的基本和会话身份验证 用法 带有所有选项的GAEHttpClient.Builder (源代码中有更多文档): import io.github....

    Blog-20150413-Communicating-with-Elasticsearch-from-GAE:博客 20150413 从 Google App Engine 与 Elasticsearch 通信

    Google App Engine 上的弹性搜索由于对 Google App Engine 应用程序施加的限制,不支持在典型庄园中使用 elasticsearch。 此应用程序展示了如何使用 elasticsearch HTTP 和 google-http-java-client 在 elastic...

    sympy-live:live.sympy.org上的代码源

    SymPy在线外壳 Online Shell for SymPy(sympy-live)是一个... 还有其他一些与内存消耗,输出大小等相关的限制(有关详细信息,请参阅Google App Engine文档)。安装克隆sympy-live存储库: $ git clone git://github

    bbq:创建BigQuery数据集表的备份

    但是,删除表时有一些限制: 可以在删除后2天内还原表格。 通过利用快照装饰器功能,可以在删除事件之前引用表,然后将其复制。 但是,以这种方式创建引用有两个主要警告: 如果删除时间之后创建了在数据集中具有...

    CrococryptQuerl:CrococryptQuerl是基于Web的文件加密和传输工具-开源

    下载======= * *可以在此处找到在Google App Engine(GAE)上运行的演示:https://crococrypt-querl.appspot.com ==> GAE将文件上传限制为1MB(! )。 ==>文件数据库偶尔会被清除。 ==>加密似乎在GAE上运行缓慢,...

    bingo-board:基于网络的宾果游戏板,因为每个人都喜欢宾果游戏!

    答对了! 为什么? 我的家人每个新年都玩宾果... 您还需要使用 django-nonrel 包,因为 GAE 使用非关系数据库,因此有一些限制(在下面的页面中描述)。 -> 宾果游戏/美味派/ -> 宾果游戏/dateutil/ -> 宾果游戏/

    objectify-remotely:使用来自 Google App Engine Java 应用程序的远程数据存储

    Objectify-remotely 将此限制为仅数据存储操作; 与 Objectify(或其他工具)结合使用,您的应用程序可以继续使用本地内存缓存和其他服务,同时仅将数据存储操作分流到远程服务。 用法 包括罐子 < groupId>...

    基于重要性采样的优势估计器

    该估计器在通用优势估计器(GAE)的基础上,引入了重要性采样机制,通过计算边界动作的目标策略与行动策略比率修正截断动作带来的值函数偏差,提高了算法的收敛速度。此外,ISAE引入了L参数,通过限制重要性采样率的...

    datahub:适用于AppEngine(Java)的数据共享应用程序框架

    DataHub是Google AppEngine库,可通过RESTful Web服务提供GAE数据存储的文件系统视图。 数据有效载荷当前必须为JSON格式,但此限制将被取消,而将支持通用二进制数据。 JSON和XML支持将在更高层次上进行处理。 ...

Global site tag (gtag.js) - Google Analytics