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 8676183b159c12afae108216a2ae94ed57a8a61a..b44aaaa6feef89af9af27fb38c2bb75854d1c6cb 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/ServletUtil.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/ServletUtil.java @@ -67,8 +67,9 @@ public class ServletUtil { static { THREAD_COUNT = getRuntime().availableProcessors(); - // CALC_EXECUTOR = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(THREAD_COUNT)); - // TASK_EXECUTOR = Executors.newSingleThreadExecutor(); + CALC_EXECUTOR = + MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(THREAD_COUNT)); + TASK_EXECUTOR = Executors.newSingleThreadExecutor(); GSON = new GsonBuilder() .registerTypeAdapter(Imt.class, new WsUtils.EnumSerializer<Imt>()) .registerTypeAdapter(ValueFormat.class, new WsUtils.EnumSerializer<ValueFormat>()) @@ -94,22 +95,13 @@ public class ServletUtil { /** * Reset executors on AWS Lambda SnapStart restore */ - // static void resetExecutors() { - // CALC_EXECUTOR.shutdown(); - // TASK_EXECUTOR.shutdown(); - - // CALC_EXECUTOR = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(THREAD_COUNT)); - // TASK_EXECUTOR = Executors.newSingleThreadExecutor(); - // } - - public static void startExecutors() { - CALC_EXECUTOR = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(THREAD_COUNT)); - TASK_EXECUTOR = Executors.newSingleThreadExecutor(); - } - - public static void shutdownExecutors() { + 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) { @@ -120,11 +112,11 @@ public class ServletUtil { return HAZARD_MODEL; } - // @EventListener - // void shutdown(ShutdownEvent event) { - // CALC_EXECUTOR.shutdown(); - // TASK_EXECUTOR.shutdown(); - // } + @EventListener + void shutdown(ShutdownEvent event) { + CALC_EXECUTOR.shutdown(); + TASK_EXECUTOR.shutdown(); + } @EventListener void startup(StartupEvent event) { diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggController.java index 54234fa443f000a1511fecebf8f59db64de9546f..1d7c49c58a2f408c68fd0057062ffbdfe64bed69 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggController.java @@ -109,14 +109,11 @@ public class DisaggController { @QueryValue @Nullable Set<Imt> imt, @QueryValue @Nullable Set<DisaggDataType> out) { try { - ServletUtil.startExecutors(); Set<Imt> imts = HazardService.readImts(http); Set<DataType> dataTypes = HazardService.readDataTypes(http); DisaggService.RequestRp request = new DisaggService.RequestRp( http, longitude, latitude, vs30, imts, returnPeriod, dataTypes); - var response = DisaggService.getDisaggRp(request); - ServletUtil.shutdownExecutors(); - return response; + return DisaggService.getDisaggRp(request); } catch (Exception e) { return ServletUtil.error( DisaggService.LOG, e, diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/HazardController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/HazardController.java index 30fd865a0bad98e2e0bea93ebce7315a0e3de138..15c4de0d62f79441ff0542301824af19d44e893a 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/HazardController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/HazardController.java @@ -103,13 +103,10 @@ public class HazardController { defaultValue = "false") @Nullable Boolean maxdir, @QueryValue @Nullable Set<Imt> imt) { try { - ServletUtil.startExecutors(); Set<Imt> imts = HazardService.readImts(http); HazardService.Request request = new HazardService.Request( http, longitude, latitude, vs30, imts, truncate, maxdir); - var response = HazardService.getHazard(request); - ServletUtil.shutdownExecutors(); - return response; + return HazardService.getHazard(request); } catch (Exception e) { return ServletUtil.error( HazardService.LOG, e, diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/RateController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/RateController.java index 489dbc519fcb3e071c111099a3a399948971e200..1ad8fa730622f2cf06cfbbceb64b6a522d5d2fcf 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/RateController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/RateController.java @@ -86,12 +86,9 @@ public class RateController { minimum = "0.01", maximum = "1000") @PathVariable double distance) { try { - ServletUtil.startExecutors(); RateService.Request request = new RateService.Request( http, longitude, latitude, distance); - var response = RateService.getRate(request); - ServletUtil.shutdownExecutors(); - return response; + return RateService.getRate(request); } catch (Exception e) { return ServletUtil.error( RateService.LOG, e,