Masstransit: сообщения отправляются в очередь _skiped.C#

Место общения программистов C#
Ответить
Anonymous
 Masstransit: сообщения отправляются в очередь _skiped.

Сообщение Anonymous »

Я пытаюсь отправить событие из одной службы в другую, но потребитель получает событие и повторно отправляет его в очередь _skiped. Мне не удалось найти решение.
Свойства модели данных такие же. Одним из свойств является тип Enum. Потребитель и производитель – это отдельные проекты.
Конфигурация потребителя:

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

services.AddMassTransit(busConfig =>
{
busConfig.SetKebabCaseEndpointNameFormatter();
busConfig.AddConsumer();

busConfig.UsingRabbitMq((context, cfg) =>
{
IOptions messageQueueOptions = context.GetRequiredService();
IOptions queueOptions = context.GetRequiredService();

cfg.UseRawJsonDeserializer();
cfg.UseRawJsonSerializer();

cfg.Host(messageQueueOptions.Value.Uri, "/", rabbitConfig =>
{
rabbitConfig.Username(messageQueueOptions.Value.Username!);
rabbitConfig.Password(messageQueueOptions.Value.Password!);
});

cfg.ReceiveEndpoint(queueOptions.Value.ShooterGameQueue!, configEndpoint =>
{
configEndpoint.ConcurrentMessageLimit = 10;

configEndpoint.Bind(queueOptions.Value.ShooterGameExchange);

configEndpoint.UseRawJsonDeserializer();
configEndpoint.ConfigureConsumer(context);
});
});
});
Конфигурация производителя:

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

  serviceCollection.AddMassTransit(busConfig =>
{
busConfig.SetKebabCaseEndpointNameFormatter();
busConfig.AddConsumer();

busConfig.UsingRabbitMq((context, cfg) =>
{
IOptions messageQueueOptions = context.GetRequiredService();
IOptions queueOptions = context.GetRequiredService();

cfg.UseRawJsonDeserializer();
cfg.UseRawJsonSerializer();

cfg.Host(messageQueueOptions.Value.Uri, "/", rabbitConfig =>
{
rabbitConfig.Username(messageQueueOptions.Value.Username!);
rabbitConfig.Password(messageQueueOptions.Value.Password!);
});

#region ShooterGame

cfg.Message(topologyConfig =>
topologyConfig.SetEntityName(queueOptions.Value.ShooterGameExchange!));

cfg.Publish(publishConfig =>
{
publishConfig.Durable = true;
publishConfig.AutoDelete = false;
publishConfig.ExchangeType = "fanout";
});

#endregion

#region Transactions

cfg.ReceiveEndpoint(queueOptions.Value.TransactionsQueue!, configEndpoint =>
{
configEndpoint.ConfigureConsumeTopology = false;
configEndpoint.ConcurrentMessageLimit = 10;

configEndpoint.Bind(queueOptions.Value.TransactionsExchange);

configEndpoint.UseRawJsonDeserializer();
configEndpoint.ConfigureConsumer(context);
});

#endregion
});
});
Варианты верны.


Подробнее здесь: https://stackoverflow.com/questions/790 ... pped-queue
Ответить

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

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

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

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

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