diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java b/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java
index b8285bee59064a154b825a1bc6a977a9bb045bbb..8a8ce70427745504ccdddaef9012a82a62d56b1a 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/PrimingResource.java
@@ -32,7 +32,10 @@ public class PrimingResource implements OrderedResource {
   }
 
   @Override
-  public void afterRestore(Context<? extends Resource> context) throws Exception {}
+  public void afterRestore(Context<? extends Resource> context) throws Exception {
+    System.out.println("Reset exexutors");
+    ServletUtil.resetExecutors();
+  }
 
   private void updateParameter() throws SsmException {
     var parameterName = System.getenv("IMT_PARAMETER_NAME");
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/ServletUtil.java b/src/main/java/gov/usgs/earthquake/nshmp/www/ServletUtil.java
index e9df8d3dce5eba83f5ac89e82a26dbc710b4e40b..e007dea5f89e5b94ac4bd747b5162a07a5f77d30 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/ServletUtil.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/ServletUtil.java
@@ -89,7 +89,14 @@ public class ServletUtil {
         .serializeNulls()
         .setPrettyPrinting()
         .create();
+  }
+
+  static void resetExecutors() {
+    CALC_EXECUTOR.shutdown();
+    TASK_EXECUTOR.shutdown();
 
+    CALC_EXECUTOR = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(THREAD_COUNT));
+    TASK_EXECUTOR = Executors.newSingleThreadExecutor();
   }
 
   static void model(HazardModel model) {