RabbitListenerアノテーションを使用してキューを複数のエクスチェンジにバインドできるようになっていますが、これまでに失敗しています。RabbitListenerバインディングキューと複数のエクスチェンジ
私が今持っていることは次のとおりです。
@RabbitListener(bindings = @QueueBinding(value =
@Queue(
value = "${subscriber.queueInbound}", durable = "true", autoDelete = "false", exclusive = "false"),
exchange = @Exchange(value = "all", durable = "true")
),
containerFactory = "subscriberRabbitListenerContainerFactory"
)
public void onMessage(Message message, Channel channel) {
// do something
}
これは、スタート/再接続、自動でsubscriber.queueInbound
として定義されたキューを作成し、デフォルトall
交流にこのキューをバインドします。
私はジョブをバックグラウンドで実行して、このキューを適切に構成し、それを構成する必要のある複数の交換にバインドします。
@RabbitListener
のいずれかを使ってこれを行うよりエレガントな方法を探しています。再接続すると、再接続する前にキューを適切に設定できるように調整する必要があります。
元々私はBeanを使ってキューの設定を行っていましたが、解決したRabbitMQが利用できない場合にアプリケーションの起動が妨げられましたが、起動してキュー設定のステップが実行されませんでした。もともと私は、豆を通じてキュー構成をしていた
はい私はエラーを認識し、それを修正するために取り組んでいますが、設定ファイルからキューを構成している交換をより明確にする必要があるので、 '@ QueueBinding'を実行時まで設定します。 – Welsh
それで、注釈ではできません。より単純な 'queues'プロパティはSpELを使って' String [] 'を返すことができます。 '#{'$ {some.prop}'。split( '、')}' @ QueueBinding'アノテーションはあまりにも複雑で、そのようなものを実装することはできません。 –