Amqp: どういうわけかChannel.QueueDeclareの「排他的」フラグと「耐久性のある」フラグは相互に影響を受けています

作成日 2018年12月03日  ·  5コメント  ·  ソース: streadway/amqp

最小限の例を次に示します。

package main

import (
    "fmt"

    "github.com/streadway/amqp"
)

func main() {
    conn, _ := amqp.Dial("amqp://guest:guest@localhost/")
    defer conn.Close()
    ch, _ := conn.Channel()
    defer ch.Close()
    q1, err := ch.QueueDeclare("test_qqq", /* durable: */ true, false, /* exclusive: */ false, false, nil)
    handle(err)
    fmt.Println("%+v", q1)
    q2, err := ch.QueueDeclare("test_qqq", /* durable: */ true, false, /* exclusive: */ true, false, nil)
    handle(err)
    fmt.Println("%+v", q2)
}

func handle(err error) {
    if err != nil {
        panic(fmt.Sprintf("%v", err))
    }
}

使用:

  • amqpバージョンv0.0.0-20181107104731-27835f1a64e9
  • RabbitMQ 3.7.3 Erlang 20.2

ご覧のとおり、この例では、同じキューを2回再作成しようとしています。最初は、 exclusive:true 、次にexclusive:falseます。 期待どおりに失敗しますが、予期しないエラーメッセージが表示されます。

Exception (406) Reason: "PRECONDITION_FAILED - inequivalent arg 'durable' for queue 'test_qqq' in vhost '/': received 'false' but current is 'true'"

durable: trueステートメントをぼんやりと見て30分過ごしましたが、実際にはexclusive引数を調べる必要があります。 将来のユーザーをそのような時間の損失から守る方法はありますか? args 'durable' and 'exclusive' are in conflict with each otherます。 それともRabbitMQの問題ですか?

mailing list material

最も参考になるコメント

@ SergeAx - https://github.com/rabbitmq/rabbitmq-server/issues/1887

基本的に、「排他的」の存在は永続的な議論を否定しますが、永続性が最初にチェックされます。 今修正中です。 問題を再現するためのコードをありがとう。

全てのコメント5件

キューガイドの宣言プロパティの同等性を参照してください。

キューガイドの宣言プロパティの同等性を参照してください。

毎週このような苦情が何十件も寄せられる可能性があることは承知していますが、ドキュメントを読んだことは間違いありません。 エラー自体やそのコードではなく、誤解を招くエラーメッセージに問題があります。 durabletrueに設定する必要があると表示されますが、これはすでに行っています。 または、パッケージの障害ではなく、RabbitMQの障害であると言っているので、リポジトリに問題を報告する必要がありますか?

更新:パッケージのソースを確認しましたが、RabbitMQ側で問題が発生していることがわかりました。申し訳ありません。 ケースはここで閉じました。

@ SergeAx - https://github.com/rabbitmq/rabbitmq-server/issues/1887

基本的に、「排他的」の存在は永続的な議論を否定しますが、永続性が最初にチェックされます。 今修正中です。 問題を再現するためのコードをありがとう。

@SergeAx申し訳ありませんが、使用しているプロパティの組み合わせを見つけられませんでした。 確かに、そのような質問のほとんどは完全な初心者からのものなので、私は缶詰の回答を使用しました。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

pnuz3n picture pnuz3n  ·  17コメント

CodingAgainstChaos picture CodingAgainstChaos  ·  3コメント

guilhem picture guilhem  ·  5コメント

arulrajalivi picture arulrajalivi  ·  11コメント

michaeljs1990 picture michaeljs1990  ·  11コメント