有没有办法了解 Prisma 的连接状态?
我知道它会自动完成所有操作,因此我不必担心与连接相关的任何事情。
但如果我想怎么办?
基本上我错过了两件事:
- 值得关注的事件。
client.on('disconnected', ...)
或实现一个接口(interface)(例如onDisconnected() { ... }
) $connect()
如果无法连接,则会抛出错误。当数据库未启动并且我启动应用程序时没有引发异常。
// Context:
// - DB not started yet
try {
await client.$connect();
console.log('DB connected');
} catch (e) {
console.log('DB is unavailable');
}
// Output
//
// > DB connected
我的用例:如果数据库停止并且无法在一段时间内恢复连接,我想向维护人员发送系统消息并关闭整个服务。
最佳答案
好吧,我克服了它。我想这与其说是一个功能,不如说是一个错误。
因此,$connect()
不会抛出错误,它之前可以成功连接,但数据库已停止,并且未调用$disconnect()
。
因此,在识别出连接丢失时调用 $disconnect()
会导致 $connect()
抛出错误(如果仍然无法连接)。
我仍然怀念监视连接事件的能力,但这对我来说现在已经足够了。
关于prisma - 连接意识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72730216/