定期的に更新され、最新の変更をmosquittoブローカーに公開したいPostgreSQL DBがあります。 このアプローチを行う最もエレガントな方法は何ですか?MQTTクライアントがPostgreSQL DBの変更を購読する
答えて
Postgressは、作成/更新トリガーから呼び出すことができるPython stored proceduresをサポートしているようです。
PAHOのPythonクライアントと組み合わせるこれは、あなたが、私は言語plpythonuというのCREATE入力すると
は、[OK]を、このアイデアは、私は、PostgreSQL 9.5を使用して、コンソールにしています面白いです何をしたいだろう。 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;
このようなクエリを公開することはできません。テーブル全体ではなく、変更されたレコードのみをパブリッシュする必要があります。しかし、コンセプトはおおよそ私が提案したものです – hardillb
関数の戻り値は何ですか?また、トリガステートメントはどのように実装できますか? –
Postgressには独自のパブリッシュ/サブスクライブシステムがあります。listen/notify。パブリッシュする情報のために、適切な(聴取)通知チャネルをポストバックで設定します。通知ペイロードは、mqttメッセージ文字列としてフォーマットできます。それらをリッスンしてmqtt-brokerにパブリッシュするクライアントを作成します。
- 1. MQTT購読者コード
- 2. RabbitMQのAMQPクライアントからMQTTメッセージを購読しますか?
- 3. paho mqtt javascriptクライアントはトピックを購読できません
- 4. Amazon aws iot mqttを購読する
- 5. クライアントを購読し、Node.js、Mosca、MQTTのMongoDBに保存する方法
- 6. MQTTクライアントのロードバランシング
- 7. AWS IoT Python用MQTTクライアント - 永久にどのように購読しますか?
- 8. paho mqtt javaを購読することができません。
- 9. MQTT Android Mosquittoクライアント
- 10. cometdチャネルを購読するjavaクライアント
- 11. Carriotsストリームを購読する
- 12. RfhUtilからIBM MQTTを購読するには
- 13. データベースにmqtt購読されたデータを格納する方法
- 14. paho-MQTT python:loop_foreverサポートのメッセージを購読させるには?
- 15. ノードブローカがダウンして起動したときにJS mqttクライアントが購読メッセージを受信しません
- 16. Meteor.users購読の更新を購読する
- 17. Angular2 - サービス変数の変更を購読する
- 18. 変更の購読方法イメージ
- 19. MQTT:自分の$ topicを購読できません
- 20. mqttで複数のトピックを購読できません
- 21. MQTTクライアントfor j2ME
- 22. MQTT#topicを購読すると、ユーザーはすべてのメッセージを読むことができますか?
- 23. Mqttクライアントsslの例(
- 24. MQTT既存のクライアント
- 25. APIの値の変更を購読する:角度4
- 26. gatling用のjeanadrien/gatling-mqtt-protocolプラグインの問題を公開して購読する
- 27. ReactiveUI ReactiveListのプロパティ変更を購読する
- 28. SQLテーブルの変更を購読する汎用ユーティリティ
- 29. ReactネイティブReduxストアの変更を購読する
- 30. 角度:@Inputの変更を購読するには
多分そうですか? 戻る公開 #client = mqtt.Client() #1 client.connect( "ローカルホスト" としてMQTT インポートpaho.mqtt.publishとして$$ インポートpaho.mqtt.client AS 整数)(関数publishChangesをCREATE 1883年、60) publish.single( "テスト/データ" SELECT *テーブルから、ホスト名= "127.0.0.1") #1 client.loop_forever() $$言語plpythonuという。 –