![](/img/trans.png)
[英]How can I config vuetify with nuxtjs to deploy on Google App Engine
[英]How can I suspend appstats for a single request on App Engine/Java?
我通常在我的沙盒 appid 上全时运行 appstats。 但是,我有一个复杂的操作(基本上是重建股票数据库)导致 appstats 炸毁我的实例,抛出 OutOfMemoryErrors。 即使具有更大的实例大小,它仍然会失败。 Appstats 只是想要太多的 RAM。
我不需要此请求的 appstats。 理想情况下,我将在负责 appstats 收集的任何 ThreadLocal object 上调用一个方法,并告诉它转动拇指几分钟。
我考虑过扩展 AppstatsFilter 以忽略某些 URL,但违规请求作为延迟任务执行并通过路径识别它有些复杂。
我怎样才能告诉 appstats 暂停?
以防万一不清楚:上传我的应用程序版本并禁用 appstats,运行我的任务,然后上传启用 appstats 的版本是我现在正在做的。 我不想这样做。
我所做的是编写自己的 CustomAppstatsFilter 并排除某些 url。
public class CustomAppstatsFilter extends AppstatsFilter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
String url = ((HttpServletRequest) request).getRequestURL().toString();
// We do not want these to show up in appstats
if ((url.contains("appstats"))
|| url.contains("_ah/")
|| url.contains("cron/")
|| url.contains("batch/")) {
chain.doFilter(request, response);
return;
} else {
super.doFilter(request, response, chain);
}
}
}
}
编辑 - 这可以与 ZiglioNZ 很好的答案相结合。
<!-- Appstats filter for profiling application -->
<filter>
<filter-name>appstats</filter-name>
<filter-class>my.company.filter.CustomAppstatsFilter</filter-class>
<init-param>
<param-name>maxLinesOfStackTrace</param-name>
<param-value>5</param-value>
</init-param>
</filter>
<filter-mapping>
<!-- excludes are in CustomAppstatsFilter -->
<filter-name>appstats</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
好问题。 对于 Python,答案很简单:
from google.appengine.ext.appstats import recording
class ...(webapp.RequestHandler):
def get(self):
recording.dont_record()
...
也许Java中有一个类似的API?
或者,Python 版本有一种灵活的方式来过滤出要记录的请求; 我认为在 Java 版本中,您可以通过使用 web.xml 中的和条目来完成类似的事情。 (请参阅 Java appstats 文档。)
Jeff,我想知道这是否可以帮助您减少 OutOfMemoryErrors 的发生: How to reduce the memory usage of Appstats on Google App Engine Java
<filter>
<filter-name>appstats</filter-name>
<filter-class>com.google.appengine.tools.appstats.AppstatsFilter</filter-class>
<init-param>
<param-name>maxLinesOfStackTrace</param-name>
<param-value>16</param-value>
</init-param>
</filter>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.