MassTransit не создана _error Queue для активности от RotingsLipC#

Место общения программистов C#
Ответить
Anonymous
 MassTransit не создана _error Queue для активности от RotingsLip

Сообщение Anonymous »

Мне нужна помощь. В MassTransit, у меня есть действие, которое может периодически выпускать ошибки, и я ожидал, что в такой ситуации будет создана очередь ошибок и появится сообщения, но этого не произойдет, я посмотрел на конфигурацию MassTransit, и не было никакой обработки сообщений об ошибке, что может быть связано. Учетная запись Rabbitmq с полным доступом < /p>

Код: Выделить всё

public static void AddMassTransit(this IServiceCollection serviceCollection, IConfiguration configuration)
{
ArgumentNullException.ThrowIfNull(serviceCollection);
var config = configuration.GetOptions("RabbitMQ");
var massTransitConfig = configuration.GetOptions("MassTransitSettings");

var types = AssemblyTypeCache.FindTypes(Assembly.GetExecutingAssembly(), TypeClassification.Concrete | TypeClassification.Closed, TypeMetadataCache.HasConsumerInterfaces)
.GetAwaiter()
.GetResult()
.ToArray();
serviceCollection.AddSingleton();
serviceCollection.AddSingleton(x => x.GetRequiredService());
serviceCollection.AddSingleton(x => x.GetRequiredService());

serviceCollection.AddMassTransit(configurator =>
{
configurator.AddConsumers(types);
configurator.AddActivities(Assembly.GetExecutingAssembly());
configurator.UsingRabbitMq((context, cfg) =>
{
cfg.PrefetchCount = massTransitConfig.PrefetchCount;
cfg.UsePrometheusMetrics();
cfg.PropagateOpenTracingContext();
cfg.ConnectMessageDurationHealthCheckObserver();
cfg.UseOperationContext(context);
cfg.UseStructuredLoggingMessageFilter();
cfg.UseUserInfoPropagation(context);
cfg.UseJsonSerialization();
cfg.Host(GetRabbitMqHostSettings());
cfg.ReceiveEndpoint(QueueNames.Events,
endpointConfigurator =>
{
endpointConfigurator.AutoDelete = false;
endpointConfigurator.Durable = true;
endpointConfigurator.ConfigureConsumers(context, types, QueueNames.Events);
});
cfg.ConfigureEndpoints(context);
});
});
serviceCollection.AddScoped(provider => new MessageBus(provider.GetRequiredService(),
provider.GetRequiredService(),
provider.GetRequiredService(),
provider.GetRequiredService(),
provider.GetServices()
.ToArray(),
TimeSpan.FromSeconds(30.0)));

RabbitMqHostSettings GetRabbitMqHostSettings()
{
var hostConfigurator = new RabbitMqHostConfigurator(new Uri(config.RabbitMqHost!));
hostConfigurator.Username(config.RabbitMqUserName);
hostConfigurator.Password(config.RabbitMqUserPassword);
return hostConfigurator.Settings;
}
}
< /code>
Пример активности < /p>
public async Task Execute(ExecuteContext context)
{
try
{
throw new NotImplementedException();
//Works...
}
catch (Exception ex)
{
return context.Faulted(ex);
}

Logger.LogInformation(Resources.StrFmtInfoActivitySuccess, context.ActivityName);
return context.CompletedWithVariables(context.Arguments);
}
Я прочитал документацию, но это не так подробно на маршрутах и ​​его ошибках.

Подробнее здесь: https://stackoverflow.com/questions/797 ... rotingslip
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»