如何关闭 clojure ring web 应用程序中的 Hikari 连接池部署到 elasticbeanstalk 中的 tomcat
Posted
技术标签:
【中文标题】如何关闭 clojure ring web 应用程序中的 Hikari 连接池部署到 elasticbeanstalk 中的 tomcat【英文标题】:How do I shutdown Hikari connection pool in clojure ring web app deployed to tomcat in elasticbeanstalk 【发布时间】:2014-12-25 12:59:33 【问题描述】:我在我的 clojure ring 应用程序中运行了 HikariCP,用于连接池。问题是我不知道关闭游泳池的好地方所以我不是。当应用程序运行时,我允许池终止,并且从不明确关闭它。每当我将我的应用程序重新部署到 Elastic Beanstalk(使用 Tomcat)时,这似乎就是泄漏连接,但我并不完全确定。我想知道哪里(如果有的话)是放置应用程序关闭代码的好地方,这样我就可以明确地关闭我的连接池。仅供参考,当前的部署过程是执行 lein ring uberwar
并通过 elasticbeanstalk UI 部署该战争。
【问题讨论】:
【参考方案1】:在您的 project.clj :ring
定义中,您指定 :handler
,您还可以指定 :init
和 :destroy
键,其函数不带参数,将在启动时调用(对于 :init)并销毁(:destroy)你的 servlet。
project.clj:
:ring :handler hello-world.core/handler
:init hello-world.core/setup-connectionpool
:destroy hello-world.core/shutdown-connectionpool
见lein-ring documentation
【讨论】:
这太完美了!谢谢!以上是关于如何关闭 clojure ring web 应用程序中的 Hikari 连接池部署到 elasticbeanstalk 中的 tomcat的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Clojure/Compojure/Ring 中将映射转换为 URL 查询字符串?
在这个简单的Clojure Ring应用程序中获取默认index.html文件以具有正确的Content-Type的正确方法是什么?
在 Clojure/Compojure 中转义/清理用户输入