首页 > 解决方案 > RabbitMQ 消费者作为 Windows Worker

问题描述

尝试containerised使用 docker 创建 Windows 服务来使用rabbitmq队列中的消息。我也在使用EasyNetQ客户端连接 RabbitMQ。

但是它因Persistent通道超时异常而失败

在 PersistentChannel 上请求的操作超时

这是我执行消费者的代码

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    while (!stoppingToken.IsCancellationRequested)
    {
          try
          {
              using (var bus = RabbitHutch.CreateBus("host=localhost;username=guest;password=guest"))
              {
                 bus.Receive("Queue", msg => msg.Add<CustomModel>(m =>
                 {
                   _logger.LogInformation("Received Message: {0}, {1}", m.Prop1, m.Prop2);}));
                 }
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);               
              }
           }
           catch (Exception ex)
           {
               _logger.LogError(ex.InnerException?.ToString());
           }
     }
}

我不确定是什么导致超时?有人有类似的问题吗?

标签: c#dockerrabbitmqeasynetq

解决方案


推荐阅读