App Engine日志中的/ _ah / queue / __ deferred__

时间:2014-09-19 12:48:52

标签: java sql google-app-engine google-cloud-sql

我有一个使用Google Cloud SQL的App Engine应用程序,从我的应用程序中的一个页面我正在做一些数据库操作;无论何时访问此页面,它都无法执行所有数据库操作。当我进入控制台时,我看到的只是/_ah/queue/__deferred__

我能够在localhost上运行应用程序而没有任何问题,因此代码没有错误,但是,在部署它之后,Cloud SQL存在问题。

注意:我的代码中没有使用任何队列。

/_ah/queue/__deferred__ 出现在App Engine日志中的实际原因是什么?

2 个答案:

答案 0 :(得分:5)

我有类似的问题。我发现我的一个过滤器中的每个过滤器都打开了会话:

httpRequest.getSession(true);
//or the one below - both opens a valid HTTP Session
httpRequest.getSession();

和我的 appengine-web.xml 配置为异步存储会话

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

这导致在默认队列中创建了许多任务,并且每个任务都尝试存储空会话。为避免这种情况,请确保仅为正确的请求打开会话。通过修复过滤器或更改 web.xml中的过滤器 url-patterns

答案 1 :(得分:0)

除非您指定了队列名称,否则所有延期任务都会进入&#34;默认&#34;任务队列。从那里,你可以重新运行,如果你在本地开发服务器(调试模式),你可以单步执行代码。