0
我正在使用寫在Node.js中的服務通過MQTT(https://www.npmjs.com/package/mqtt)接收消息,然後寫入數據庫(使用mssql的SQL Server)。如何使用MQTT處理Node.js中的消息處理失敗?
當一切正常工作時,這將工作得非常好,我創建了mqtt偵聽器並訂閱了新的消息事件。
但是,如果與數據庫的連接失敗(這可能會由於網絡中斷等原因而週期性發生),那麼將消息寫入數據庫將失敗,並且該消息將被丟棄。
我想告訴MQTT經紀人 - 「我無法處理該消息,直到我可以將其保存在緩衝區中。」
var mqtt = require('mqtt')
var client = mqtt.connect('mymqttbroker')
client.on('connect', function() {
client.subscribe('messagequeue')
})
client.on('message', function (topic, message) {
writeMessageToDB(message).then((result) => {console.log('success'};).catch((err) => {/* What can I do here ?*/});
})
這是一個非常有用的方法,它可能是前進的方向! –
@TerryLennox只需要注意,如果命令或併發很重要,那麼這種方法會導致問題... –
在這種情況下,命令並不重要,消息可能會按順序到達DB層處理得很好。謝謝! –