我有一个使用Google Cloud SQL的App Engine应用程序,从我的应用程序中的一个页面我正在做一些数据库操作;无论何时访问此页面,它都无法执行所有数据库操作。当我进入控制台时,我看到的只是/_ah/queue/__deferred__
。
我能够在localhost上运行应用程序而没有任何问题,因此代码没有错误,但是,在部署它之后,Cloud SQL存在问题。
注意:我的代码中没有使用任何队列。
/_ah/queue/__deferred__
出现在App Engine日志中的实际原因是什么?
答案 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;任务队列。从那里,你可以重新运行,如果你在本地开发服务器(调试模式),你可以单步执行代码。