AdSense

網頁

2023/1/5

Golang RabbitMQ 偵測連線關閉

Go連線RabbitMQ可使用Connection.NotifyClose偵測連線中斷。


範例環境:

  • Go 1.19
  • github.com/rabbitmq/amqp091-go v1.5.0


事前要求

參考「Golang RabbitMQ hello world 接收訊息範例」。


範例

Connection.NotifyClose(receiver chan *Error) chan *Error接收一個chan *Error參數,並回傳一個chan *Error;當保持連線時chan *Error會阻塞程序,直到連線中斷時chan *Error接收到錯誤資料並解除阻塞。

main.go

package main

import (
    "log"

    amqp "github.com/rabbitmq/amqp091-go"
)

func main() {
    // 取得連線
    conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
    ...

    <-conn.NotifyClose(make(chan *amqp.Error)) // 監聽連線關閉
    log.Printf("Connection closed")
}


沒有留言:

AdSense