消费者不消费消息服务总线队列
Consumer not consuming message Service Bus Queue
我最近在 ASP.NET Core 5.0 中尝试服务总线队列,我在其中创建了 Producer webapi 和消费者 Web API 并使用了 masstransite。但由于某种原因,我无法使用该消息。
消息生产者代码控制器:
[HttpGet]
[Route("sender")]
public async Task SendUsingAzureServiceBusQeue()
{
try
{
var sendEndpoint =
await _serviceEndPointProvider.GetSendEndpoint(
new Uri("myservicebusurl/test"));
await sendEndpoint.Send<Test>(new Test { message = "Hi This message from sender" });
}
catch(Exception ex)
{
}
}
生产者启动Class设置:
public void ConfigureServices(IServiceCollection services)
{
services.AddMassTransit(x =>
{
x.UsingAzureServiceBus((context, cfg) =>
{
cfg.Host("Endpoint=myservicebusconnectionstring");
});
});
services.AddMassTransitHostedService();
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "AKS Example", Version = "v1" });
});
}
消费者代码启动class:
public void ConfigureServices(IServiceCollection services)
{
services.AddMassTransit(x =>
{
x.UsingAzureServiceBus((context, cfg) =>
{
cfg.Host("Endpoint=myservicebusconnectionstring");
cfg.ReceiveEndpoint("test", endpoint =>
{
endpoint.ConfigureConsumer<MessageConsumer>(context);
});
});
x.AddConsumer<MessageConsumer>();
});
services.AddMassTransitHostedService(true);
services.AddControllers();
}
消费者代码消费者Class:
public class MessageConsumer : IConsumer<Test>
{
public Task Consume(ConsumeContext<Test> context)
{
Console.WriteLine($"Message processed: Message:{context.Message.message}");
return Task.CompletedTask;
}
}
我可以看到消息正在推送,但消费者端没有收到。
我还注意到有一个正在创建的主题,尽管我使用仅队列名称“test”进行发布和订阅。
确保两个项目具有相同的消息类型,包括命名空间 as pointed out in the documentation。
我最近在 ASP.NET Core 5.0 中尝试服务总线队列,我在其中创建了 Producer webapi 和消费者 Web API 并使用了 masstransite。但由于某种原因,我无法使用该消息。
消息生产者代码控制器:
[HttpGet]
[Route("sender")]
public async Task SendUsingAzureServiceBusQeue()
{
try
{
var sendEndpoint =
await _serviceEndPointProvider.GetSendEndpoint(
new Uri("myservicebusurl/test"));
await sendEndpoint.Send<Test>(new Test { message = "Hi This message from sender" });
}
catch(Exception ex)
{
}
}
生产者启动Class设置:
public void ConfigureServices(IServiceCollection services)
{
services.AddMassTransit(x =>
{
x.UsingAzureServiceBus((context, cfg) =>
{
cfg.Host("Endpoint=myservicebusconnectionstring");
});
});
services.AddMassTransitHostedService();
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "AKS Example", Version = "v1" });
});
}
消费者代码启动class:
public void ConfigureServices(IServiceCollection services)
{
services.AddMassTransit(x =>
{
x.UsingAzureServiceBus((context, cfg) =>
{
cfg.Host("Endpoint=myservicebusconnectionstring");
cfg.ReceiveEndpoint("test", endpoint =>
{
endpoint.ConfigureConsumer<MessageConsumer>(context);
});
});
x.AddConsumer<MessageConsumer>();
});
services.AddMassTransitHostedService(true);
services.AddControllers();
}
消费者代码消费者Class:
public class MessageConsumer : IConsumer<Test>
{
public Task Consume(ConsumeContext<Test> context)
{
Console.WriteLine($"Message processed: Message:{context.Message.message}");
return Task.CompletedTask;
}
}
我可以看到消息正在推送,但消费者端没有收到。 我还注意到有一个正在创建的主题,尽管我使用仅队列名称“test”进行发布和订阅。
确保两个项目具有相同的消息类型,包括命名空间 as pointed out in the documentation。