【问题标题】:Inexplicable deferred tasks莫名其妙的延期任务
【发布时间】:2012-06-21 10:45:43
【问题描述】:

我在 App Engine 上有一个相当简单的项目。不知何故,创建了大量的延迟任务,并用完了我所有的配额。在我的所有代码中(由 grep 证明;)),我不使用任务(还),所以我不知道从哪里来......

任务载荷如下:

....sr.;com.google.appengine.api.taskqueue.DatastorePutDeferredTask..(=.R.s...L..putMet.+Lcom/google/appengine/api/datastore/Entity;xpsr.)com.google.appengine.api.datastore.Entity.c.<]..y...L..keyt.(Lcom/google/appengine/api/datastore/Key;L..propertyMapt..Ljava/util/Map;xr.4com.google.appengine.api.datastore.PropertyContainer..:<3.;....xpsr.&com.google.appengine.api.datastore.Key....6E.....J..idL..appIdt..Ljava/lang/String;L..kindq.~..L..nameq.~..L..parentKeyq.~..xp........t..s~incoappt.._ah_SESSIONt.._ahshEQtxFwHEoPJXGuGBSXuUgpxsr..java.util.HashMap......`....F..loadFactorI..thresholdxp?@......w.........t.._expiressr..java.lang.Long;.....#....J..valuexr..java.lang.Number...........xp...8...Gt.._valuessr.'com.google.appengine.api.datastore.BlobV0.........[..bytest..[Bxpur..[B......T....xp...R....sr..java.util.HashMap......`....F..loadFactorI..thresholdxp?@......w.........xx

我注意到 _ah_SESSION 是有效负载的一部分,而且确实创建了很多新会话,但我不知道为什么。

关于创建任务的时间:我不知道......不是每个请求,或者我可以扣除的任何东西。

【问题讨论】:

  • 您找到解决方案了吗?在启用异步会话持久性的情况下,我们得到了相同的行为。谢谢!

标签: java google-app-engine


【解决方案1】:

您很可能拥有sessions enabled 并可选择异步保存会话数据(通过任务队列):

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

【讨论】:

  • 当然!然而,它仍然没有解释这样一个事实,即在绝对没有流量的情况下(仍然是一个开发阶段项目),任务队列会爆炸成数千个任务。我有安全约束这一事实是否与它有任何关系?这是我的 web.xml 的一部分:&lt;security-constraint&gt; &lt;web-resource-collection&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/web-resource-collection&gt; &lt;user-data-constraint&gt; &lt;transport-guarantee&gt;CONFIDENTIAL&lt;/transport-guarantee&gt; &lt;/user-data-constraint&gt; &lt;/security-constraint&gt;
  • 也许 http -> https 重定向会强制任务进入新会话?必须将其保存为无限循环。
猜你喜欢
  • 2012-05-19
  • 1970-01-01
  • 2012-03-12
  • 2019-02-04
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多