如何关闭在ElasticBeanstalk中部署到tomcat的Clojure Ring Web应用程序中的Hikari连接池

How do I shutdown Hikari connection pool in clojure ring web app deployed to tomcat in elasticbeanstalk

我的Clojure Ring应用程序中运行了HikariCP,用于连接池。问题是我不知道关闭游泳池的好地方,所以我没有。我允许池在应用程序运行时死掉,并且从不明确关闭它。似乎每当我将我的应用程序重新部署到Elastic Beanstalk(使用Tomcat)时,这就会泄漏连接,但我不我想知道哪里(如果有的话)是放置应用关闭代码的好地方,因此我可以显式关闭我的连接池。仅供参考,当前部署过程是执行lein ring uberwar并通过elasticbeanstalk UI部署该战争。


在project.clj :ring定义中,其中指定:handler,还可以指定:init:destroy键,其键不带参数,这些参数在启动时将被调用(对于:init)和破坏(:destroy)您的servlet。

project.clj:

1
2
3
:ring {:handler hello-world.core/handler
       :init hello-world.core/setup-connectionpool
       :destroy hello-world.core/shutdown-connectionpool}

请参阅lein-ring文档