gpt4 book ai didi

c# - 如何在 EasyNetQ 中为每个消费者声明自定义错误交换?

转载 作者:太空狗 更新时间:2023-10-29 23:06:43 24 4
gpt4 key购买 nike

当发生错误消息发布到默认 EasyNetQ_Default_Error_Queue 时,我有四个消费者是否可以让每个队列消费者编写自己的错误交换

例如;

Queue Name : A    ErrorExchange :A_ErrorExchange
Queue Name : B ErrorExchange :B_ErrorExchange

bus.Advanced.Conventions.ErrorExchangeNamingConvention = new ErrorExchangeNameConvention(info => "A_DeadLetter");

bus.Advanced.Conventions.ErrorExchangeNamingConvention = new ErrorExchangeNameConvention(info2 => "B_DeadLetter");

最佳答案

从您提供的代码来看,您似乎快完成了——您只需要适本地覆盖 ErrorExchangeNamingConventionErrorQueueNamingConvention

例如,这里有一个方法将返回 IBus 的实例,并覆盖这些约定以合并指定的消费者名称:

public IBus CreateBus(string connectionString, string consumerName) 
{
var bus = RabbitHutch.CreateBus(connectionString);

// Modify the following to create your error exchange name appropriately
bus.Advanced.Container.Resolve<IConventions>().ErrorExchangeNamingConvention =
info => consumerName + "_ErrorExchange";

// Modify the following to create your error queue name appropriately
bus.Advanced.Container.Resolve<IConventions>().ErrorQueueNamingConvention =
() => consumerName + "_ErrorQueue";

return bus;
}

关于c# - 如何在 EasyNetQ 中为每个消费者声明自定义错误交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30547475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com