在Go 中偵測並處理失效的RabbitMQ 連線
在提供的RabbitMQ 消費者腳本中,RabbitMQ 伺服器操作的中斷導致腳本伺服器運行但對訊息沒有反應。為了解決這個問題,必須偵測死連線並重新連線或終止腳本。
底層函式庫 streadway/amqp 提供了一個解決方案。 amqp.Connection 類型有一個 NotifyClose() 方法,該方法傳回通道訊號傳輸或協定錯誤。透過使用此通道,可以偵測連線失敗。
這是包含連線錯誤處理的腳本的更新版本:
在此修訂後的腳本中,連接循環包裝了其他操作。在訊息接收循環中,select 語句檢查錯誤通道和傳入訊息。如果偵測到連線錯誤,它會記錄該錯誤並觸發重新連線。這種機制確保腳本可以從瞬態連接問題中恢復並恢復正常操作。
以上是如何在 Go 中偵測和處理死掉的 RabbitMQ 連結?的詳細內容。更多資訊請關注PHP中文網其他相關文章!