【发布时间】:2014-02-04 14:45:19
【问题描述】:
我有一个 PostgreSQL 数据库,当插入表中的行时会触发 NOTIFY mychannel。
我想使用 Apache Camel 将此信息发送到各种来源(Twitter 等)。
我了解可以使用 JDBC 并调用 LISTEN mychannel 来接收这些通知,但可能需要使用轮询。
我对 Camel 很陌生,所以不知道从哪里开始。这是我会用 SQL、JDBC 或轮询消费者连接器做的事情吗?
有没有内置的方法可以在 Camel 中有效地做到这一点?
【问题讨论】:
-
客户端只有在主动从服务器取回东西时才能收到通知。所以你需要轮询服务器以获取通知。
-
PgJDBC 中的底层接口在the PgJDBC documentation 中讨论。您需要原始 JDBC
java.sql.Connection,然后将其转换为PGConnection并调用getNotifications()。如果 Camel 有自己的支持,它将通过 JDBC 驱动程序中的该接口,因此请在 Camel 源代码中查找getNotifications。
标签: postgresql apache-camel notify listen