Normalmente ejecuto aplicaciones de tiempo completo en mi aplicación sandbox. Sin embargo, tengo una operación complicada (básicamente la reconstrucción de la base de datos) que hace que los appstats exploten mi instancia, lanzando OutOfMemoryErrors. Incluso con tamaños de instancia más grandes, todavía falla. Appstats solo quiere demasiada RAM.¿Cómo puedo suspender los appstats para una sola solicitud en App Engine/Java?
No necesito appstats en esta solicitud. Idealmente, llamaré a un método sobre cualquier objeto ThreadLocal que sea responsable de la recopilación de appstats y le diré que mueva sus pulgares durante unos minutos.
He considerado extender el AppstatsFilter para ignorar ciertas URL, pero la solicitud ofensiva se ejecuta como una tarea diferida e identificarla por ruta es algo complicado.
¿Cómo puedo decirle a los usuarios de la aplicación que pause?
Por si acaso no está claro: Cargar una versión de mi aplicación con appstats deshabilitado, ejecutar mi tarea, y luego cargar una versión con appstats habilitados es lo que estoy haciendo ahora. No quiero hacer esto
Supongo que solo está optando por las direcciones URL que desea monitorizar, ¿no es una opción? FWIW. He deseado poder hacer lo que estás pidiendo más de una vez, pero mordí la viñeta y acabo de hacer una lista de las URL que necesitábamos para monitorear y ponerlas en la configuración. –
Desafortunadamente, la URL que deseo excluir es/_ah/queue/__ deferred__. Probablemente podría montar el DeferredTaskServlet en una URL adicional y enrutar esta solicitud específica, pero esto parece ir muy lejos de la reserva. – stickfigure
¿Alguna vez resolvió esto? – Keith