java - 您可以在数据库表或类似表上放置一个监听器吗

标签 java spring listener

我有一个java后端系统。我们需要集成到第三方。我需要将结果返回给客户。目前,我们正在使用第三方写入的 View (SQL SERVER),并在某处保留唯一 ID 的跟踪器。

我有一个 Spring-wired 轮询器,每 10 分钟运行一次,它将返回从上次发送到结束的所有内容,并使用新 ID 更新跟踪器表。没什么复杂的。

我想知道是否有一种简单的方法可以几乎在 table 上“听”。如果添加了任何新行,请获取它们并通过我的服务返回它们。如果有的话,是否可取?

最佳答案

免责声明:我还没有完全做到这一点,而且 SQL Server 不是我的 Playground 。然而,如今将触发器与非 SQL 命令相结合应该是可能的,并且在互联网上搜索“sql server notification”会产生关于“SQL Server 中的查询通知”的部分: https://msdn.microsoft.com/en-us/library/t9x04ed2(v=vs.110).aspx

一般来说,只要能够以某种方式从触发器内部向套接字发送命令,那么您就可以使用 PUB-SUB 消息队列(RabbitMQ、NSQ 等)来发送通知,您可以在其中检索该通知你的Java程序。当然,您必须在要监视的任何列上安装触发器。是否可以监视架构(或数据库)的一般变化 - 这可能只有在您有权访问的数据库内有一些日志记录时才可能实现。这可能不存在,开箱即用。触发器可能是更干净的方式,因为它驻留在架构/数据库本身中,不需要访问系统表。

编辑:还发现了有关触发器内套接字连接的问题/答案:Creating socket inside a SQL-CLR trigger or stored procedure

关于java - 您可以在数据库表或类似表上放置一个监听器吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29773641/

相关文章:

java - java 中的谷歌云存储示例

java - Neo4j:2.2.3:服务器在 "Detected incorrectly shut down database, performing recovery"后无法启动

javascript - 添加div后运行脚本

java - Java 中监听器的正确(和最佳)集合类型

java - 速度的全局背景

java - 设置java中主类中一个类中数组的大小

java - 定期刷新Spring bean实例属性最佳实践?

尝试从 spring 连接时出现 java.lang.ClassNotFoundException : org. postgresql.Driver

spring - 为什么@Qualifier 不能与@Autowired 一起使用?

Symfony2 语言环境整页事件监听器