问题描述
Rabbitmq 没有收到消息。 BackgroundWorker 通过回调函数订阅。但什么也没发生。
public class RabbitMqService : IRabbitMqService
{
private readonly IBus _bus;
private readonly ILogger<RabbitMqService> _logger;
public RabbitMqService(ILogger<RabbitMqService> logger,IBus bus)
{
this._logger = logger;
_bus = bus;
}
public void Push(PdfMsg msg)
{
_bus.PubSub.PublishAsync(msg).ContinueWith(task =>
{
if (task.IsCompleted && !task.IsFaulted)
{
_logger.Loginformation("task Compled");
}
else if(task.IsFaulted)
{
_logger.Loginformation("Not send"+ msg.Data.Description);
}
});
}
public async Task<ISubscriptionResult> Receive(Func<PdfMsg,Task> action)
{
_ = _bus.SendReceive.ReceiveAsync("intel",action);
return await _bus.PubSub.SubscribeAsync("intel",action);
}
}
为什么在有消息时没有调用该函数 RabbitMQ 上的队列?
解决方法
问题的更多代码
TypeError: 'NoneType' object is not subscriptable
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddSyncfusionBlazor();
services.AddSingleton(typeof(ISyncfusionStringLocalizer),typeof(SyncfusionLocalizer));
services.Configure<RequestLocalizationOptions>(options =>
{
services.AddRazorPages();
services.AddServerSideBlazor();
services.AddSingleton<WeatherForecastService>();
services.AddSingleton<IRabbitMqService,RabbitMqService>();
services.RegisterEasyNetQ("host=192.168.0.10;port=49157;virtualHost=intel;username=admin;password=admin;requestedHeartbeat=10");
services.AddHostedService<Worker>();
}