在expressjs中有很多优雅停止的例子,我如何在koajs中实现同样的效果?
我也想断开数据库连接
我有一个mongoose数据库连接,和2个oracle db连接(https://github.com/oracle/node-oracledb)
在expressjs中有很多优雅停止的例子,我如何在koajs中实现同样的效果?
我也想断开数据库连接
我有一个mongoose数据库连接,和2个oracle db连接(https://github.com/oracle/node-oracledb)
5条答案
按热度按时间46qrfjad1#
我创建了一个npm包
http-graceful-shutdown
(https://github.com/sebhildebrandt/http-graceful-shutdown)前一段时间。这与http
,express
和koa
完美地工作。因为你想添加自己的清理东西,我修改了包,所以你现在可以添加自己的清理功能,所以基本上这个包会处理所有的http关闭以及调用你的清理函数(如果选项中提供的话):字符串
jbose2ul2#
我已经在不同的node.js支持渠道上回答了很多次“如何终止HTTP服务器”的问题。不幸的是,我不能推荐任何现有的库,因为它们在某种程度上都是缺乏的。我已经把一个包放在一起,(我相信)它可以处理所有预期的优雅HTTP服务器终止的情况。
https://github.com/gajus/http-terminator的
http-terminator的主要优点是:
使用Koa:
字符串
i7uq4tfw3#
为了确保Oracle DB连接被很好地关闭,您可以使用连接池并使用0或更大的
drainTime
调用pool.close()
。这将使应用程序相对干净地中断当前使用连接的任何操作。它允许释放连接的DB端,而无需DB在清理自己之前等待任何超时期限到期。即使有两个连接,这也是这是一个我会考虑的解决方案,因为池很小并不重要。您可能还需要设置Oracle Net带外中断检测,请参阅连接和高可用性。pn9klfpd4#
现代版本的node已经支持
AbortController
,因此不需要外部库。一个简单的例子:字符串
2w3rbyxf5#
或者您可以直接访问
listen
函数中返回的服务器并关闭它。字符串