java - Google appengine 为 Multi-Tenancy 应用程序中的所有请求创建延迟队列(/_ah/queue/__deferred__)

标签 java google-app-engine google-cloud-endpoints task-queue multi-tenant

Appengine 会为 Multi-Tenancy 应用程序站点上的每次点击或每个请求创建延迟队列 (/_ah/queue/deferred),因此会创建并运行大量队列,从而给出错误的结果以及过度使用队列导致超出配额。

此应用程序在数据存储操作之前设置命名空间,即 NamespaceManger.set(somenamespace) 作为 Multi-Tenancy 应用程序的一部分。没有完成与队列相关的编码,默认队列由应用程序引擎自动创建,每次操作都会生成多个队列,这会导致问题。

提前致谢。非常感谢任何帮助。

在我当前的应用程序中,我们使用 GAE Cloud Endpoint 连接到 Android 和 Web 模块。在此应用程序中,我们基于命名空间( Multi-Tenancy )应用程序分离了数据存储和内存缓存。我发现,对于 android 或 web 模块的每次调用,日志文件中都有一个延迟队列条目。这导致我的后端实例时间被消耗。我不明白的是,由于我没有使用 Taskqueue 或没有对如何/谁触发延迟队列进行相同的配置,以及解决此问题的可能方法是什么

最佳答案

该问题是由于您的 app.yaml 中启用了 async-session-persistence 造成的。

启用此功能后,您的应用程序会将您的 HTTP session 日期写入数据存储区。该过程是使用延迟任务队列完成的。当该任务队列失败时,系统会不断重试。

因此,要解决此问题,您可以从 app.yaml 中删除此代码

<async-session-persistence enabled="true"/>

或者 您必须调试错误以避免任务队列失败。

希望这有帮助。祝一切顺利。

关于java - Google appengine 为 Multi-Tenancy 应用程序中的所有请求创建延迟队列(/_ah/queue/__deferred__),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24388217/

相关文章:

java - 为一个类生成多个 .class 文件?

java - Eclipse stdin 不发送回车和换行

安卓工作室 : how to setup generated Cloud Endpoints sources?

java - 这是服务器或客户端上的 Google Endpoints 错误吗?

android - 在 Android 客户端上使用 Cloud Endpoint 模型中包含的枚举

java - Bufferedwriter 工作,但文件为空?

java - 通过VM选项调用java类静态初始化

google-app-engine - 第三方路由器和静态文件

google-app-engine - 子域阻止我的搜索结果在页面排名中上升

java - 在 GAE 应用程序中启用 HA/High Replication 选项