我有一个定期更新的PostgreSQL数据库,并希望将最新的更改发布到mosquitto代理。 这种方法最优雅的方法是什么?
答案 0 :(得分:1)
好的,这个想法很有意思我正在使用PostgreSQL 9.5并且在控制台中如果我输入CREATE LANGUAGE plpythonu; python语言可用。 但是我如何能够接收整个数据库以及定期将数据库更改为我的经纪人。
CREATE FUNCTION publishChanges ()
RETURNS integer
AS $$
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
#client = mqtt.Client()
#client.connect("localhost", 1883, 60)
publish.single("test/data", SELECT * from table ,hostname="127.0.0.1")
#client.loop_forever()
$$ LANGUAGE plpythonu;
答案 1 :(得分:0)
Postgress似乎支持python stored procedures,您应该可以从创建/更新触发器调用它。
这与paho python客户端相结合可以做你想做的事情
答案 2 :(得分:0)
Postgress有自己的发布/订阅系统:listen / notify。在postgress中设置正确的(监听)通知渠道,以获取您要发布的信息。通知有效负载可以格式化为mqtt消息字符串。创建一个侦听它们并发布到mqtt-broker的客户端。