2014-09-19 81 views
1

我有一个使用Google Cloud SQL的App Engine应用程序,并且从我的应用程序中的一个页面进行一些数据库操作;无论何时访问此页面,都无法执行所有数据库操作。当我去控制台时,我看到的全部是/_ah/queue/__deferred__/_ah/queue/__ deferred__在App Engine日志中

我能够在本地主机上没有任何问题的情况下运行该应用程序,因此代码没有错误,但是,在部署云之后会出现问题。

说明:我的代码中没有使用任何队列。

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

回答

0

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

+0

固定过滤器或更换过滤网址图案我没有使用任何地方的队列在我的代码,那么为什么App Engine是推动操作队列,当我真正看到队列当这出现在日志中,没有队列,我的数据库操作失败 – 2014-11-21 13:18:28

3

我有类似的问题。我发现,在我的过滤器之一是为每一个进来的连接打开会话:

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

+0

在我的appengine-web.xml中,我没有设置。我只启用了会话。 – 2015-01-05 08:15:41

相关问题