Spring Boot Data JPA 检测数据库断线

问题描述 投票:0回答:1

我有一个 Spring Integration 流程,它从数据流中检索数据,对其进行处理,并将结果保存在关系数据库中。流程运行得很好。我想停止/恢复流程以响应数据库可用性,当数据库因任何原因断开连接时停止它,并在重新连接时恢复它。我怎样才能实现这个目标?是否有标准的 DatasourceConnected/DatasourceDisconnected Spring 事件?

对于源数据流,我可以实现一个 ConnectionListener 来执行此操作,但我不知道如何为输出执行此操作。

spring-boot spring-data-jpa spring-integration
1个回答
0
投票

虽然 Spring 没有提供特定的 DatasourceConnected 或 DatasourceDisconnected 事件,但您可以创建自己的自定义事件和侦听器来处理数据库可用性更改。您可以按照以下步骤操作: 创建自定义事件:定义您自己的自定义事件来表示数据库连接状态的变化。例如,您可以创建 DatabaseConnectedEvent 和 DatabaseDisconnectedEvent。当数据库连接建立或丢失时,这些事件将被触发。 实现事件侦听器:实现将响应这些自定义事件的事件侦听器。您可以为触发集成流恢复的 DatabaseConnectedEvent 创建一个侦听器,并为停止集成流的 DatabaseDisconnectedEvent 创建另一个侦听器。 发布事件:根据数据库连接状态,使用适当的机制发布自定义事件。例如,您可以有一个单独的组件负责监视数据库连接,当检测到更改时,它可以发布相应的事件。 对于源数据流,正如您提到的,您可以实现一个 ConnectionListener 来检测连接状态变化并相应地发布自定义事件。

© www.soinside.com 2019 - 2024. All rights reserved.