第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang amqp 重新連接

Golang amqp 重新連接

Go
胡說叔叔 2022-01-04 21:09:42
我想測試與rabbitmq服務(wù)器的重啟連接。在寫了小腳本來測試。 http://play.golang.org/p/l3ZWzG0Qqb 但它不起作用。在步驟 10 中,我關(guān)閉了通道和連接。并再次打開它們。并重新創(chuàng)建 chan amqp.Confirmation ( :75) 。并繼續(xù)循環(huán)。但在那之后,從陳確認(rèn)沒有任何回報。UPD:代碼在這里。package mainimport (    "fmt"    "github.com/streadway/amqp"    "log"    "os"    "time")const SERVER = "amqp://user:pass@localhost:5672/"const EXCHANGE_NAME = "publisher.test.1"const EXCHANGE_TYPE = "direct"const ROUTING_KEY = "publisher.test"var Connection *amqp.Connectionvar Channel *amqp.Channelfunc setup(url string) (*amqp.Connection, *amqp.Channel, error) {    conn, err := amqp.Dial(url)    if err != nil {        return nil, nil, err    }    ch, err := conn.Channel()    if err != nil {        return nil, nil, err    }    return conn, ch, nil}func main() {    url := SERVER    Connection, Channel, err := setup(url)    if err != nil {        fmt.Println("err publisher setup:", err)        return    }    confirms := Channel.NotifyPublish(make(chan amqp.Confirmation, 1))    if err := Channel.Confirm(false); err != nil {        log.Fatalf("confirm.select destination: %s", err)    }    for i := 1; i <= 3000000; i++ {        log.Println(i)        if err != nil {            fmt.Println("err consume:", err)            return        }        if err := Channel.Publish(EXCHANGE_NAME, ROUTING_KEY, false, false, amqp.Publishing{            Body: []byte(fmt.Sprintf("%d", i)),        }); err != nil {            fmt.Println("err publish:", err)            log.Printf("%+v", err)            os.Exit(1)            return        }        // only ack the source delivery when the destination acks the publishing        confirmed := <-confirms        if confirmed.Ack {            log.Printf("confirmed delivery with delivery tag: %d", confirmed.DeliveryTag)        } else {            log.Printf("failed delivery of delivery tag: %d", confirmed.DeliveryTag)            // TODO. Reconnect will be here        }
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗 獲得超3個贊

您應(yīng)該將頻道置于確認(rèn)模式。通過調(diào)用channel.Confirm()方法。關(guān)閉連接后,即使在同一連接上獲得新頻道后,您應(yīng)該再次調(diào)用 Confirm() 方法,因為該頻道與舊頻道不同,并且所有新頻道的默認(rèn)設(shè)置是不發(fā)送確認(rèn)。


查看完整回答
反對 回復(fù) 2022-01-04
  • 1 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號