diff --git a/java/google/registry/module/backend/BackendServlet.java b/java/google/registry/module/backend/BackendServlet.java index 17ac9cdec..76977d0b0 100644 --- a/java/google/registry/module/backend/BackendServlet.java +++ b/java/google/registry/module/backend/BackendServlet.java @@ -14,6 +14,8 @@ package google.registry.module.backend; +import com.google.appengine.api.LifecycleManager; +import com.google.appengine.api.LifecycleManager.ShutdownHook; import google.registry.monitoring.metrics.MetricReporter; import google.registry.util.FormattingLogger; import java.io.IOException; @@ -43,16 +45,20 @@ public final class BackendServlet extends HttpServlet { } catch (TimeoutException timeoutException) { logger.severefmt("Failed to initialize MetricReporter: %s", timeoutException); } - } - @Override - public void destroy() { - try { - metricReporter.stopAsync().awaitTerminated(10, TimeUnit.SECONDS); - logger.info("Shut down MetricReporter"); - } catch (TimeoutException timeoutException) { - logger.severefmt("Failed to stop MetricReporter: %s", timeoutException); - } + LifecycleManager.getInstance() + .setShutdownHook( + new ShutdownHook() { + @Override + public void shutdown() { + try { + metricReporter.stopAsync().awaitTerminated(10, TimeUnit.SECONDS); + logger.info("Shut down MetricReporter"); + } catch (TimeoutException timeoutException) { + logger.severefmt("Failed to stop MetricReporter: %s", timeoutException); + } + } + }); } @Override diff --git a/java/google/registry/module/frontend/FrontendServlet.java b/java/google/registry/module/frontend/FrontendServlet.java index d99dff0b7..05b3b64d8 100644 --- a/java/google/registry/module/frontend/FrontendServlet.java +++ b/java/google/registry/module/frontend/FrontendServlet.java @@ -14,6 +14,8 @@ package google.registry.module.frontend; +import com.google.appengine.api.LifecycleManager; +import com.google.appengine.api.LifecycleManager.ShutdownHook; import google.registry.monitoring.metrics.MetricReporter; import google.registry.util.FormattingLogger; import java.io.IOException; @@ -43,16 +45,20 @@ public final class FrontendServlet extends HttpServlet { } catch (TimeoutException timeoutException) { logger.severefmt("Failed to initialize MetricReporter: %s", timeoutException); } - } - @Override - public void destroy() { - try { - metricReporter.stopAsync().awaitTerminated(10, TimeUnit.SECONDS); - logger.info("Shut down MetricReporter"); - } catch (TimeoutException timeoutException) { - logger.severefmt("Failed to stop MetricReporter: %s", timeoutException); - } + LifecycleManager.getInstance() + .setShutdownHook( + new ShutdownHook() { + @Override + public void shutdown() { + try { + metricReporter.stopAsync().awaitTerminated(10, TimeUnit.SECONDS); + logger.info("Shut down MetricReporter"); + } catch (TimeoutException timeoutException) { + logger.severefmt("Failed to stop MetricReporter: %s", timeoutException); + } + } + }); } @Override