首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EasyNetQ模型停堆

EasyNetQ模型停堆
EN

Stack Overflow用户
提问于 2013-03-08 09:21:19
回答 2查看 2.3K关注 0票数 2

我使用RabbitMQ实现了一个简单的客户机到EasyNetQ。连接之后,我得到一个通知--“队列的模型关闭”。这是我的代码:

代码语言:javascript
复制
var _bus = RabbitHutch.CreateBus(String.Format("host={0}", hostName)).Advanced;
var _exchange = Exchange.DeclareFanout(exName);
var _queue = Queue.DeclareTransient();
_queue.BindTo(_exchange, "_");
_bus.Subscribe(
 _queue,
 (msg, properties, messageReceivedInfo) =>
 {
  return Task.Factory.StartNew(() =>
  {
   Console.WriteLine(msg.Length.ToString());
  });
 });

使用更低级别的方法,一切都很好(消息长度显示在控制台中):

代码语言:javascript
复制
var factory = new ConnectionFactory();
factory.HostName = hostName;
var connect = factory.CreateConnection();
var channel = connect.CreateModel();
channel.ExchangeDeclare(exName, "fanout");
var resultQueue = channel.QueueDeclare(string.Empty, false, true, false, null);
string queueName = resultQueue.QueueName;
var consumer = new QueueingBasicConsumer(channel);
channel.QueueBind(queueName, exName, string.Empty);
var resultConsume = channel.BasicConsume(queueName, false, consumer);
while(true)
{
 var e = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
 Console.WriteLine(e.Body.Length.ToString());
 channel.BasicAck(e.DeliveryTag, false);
}

拜托,快点,第一条路怎么了?

UPD I遇到了IntelliTrace的异常:

AMQP操作被中断:由Peer、code=406、text="PRECONDITION_FAILED发起的AMQP关闭原因不能在具有不同类型、持久、内部或自动删除值的vhost '/‘中重新声明exchange 'live’、classId=40、methodId=10、cause=。

Exchange设置相同(见上文)。那怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-22 11:04:31

在通过RabbitMQ管理web接口创建队列时添加了已设置的参数之前,我遇到了同样的问题,即迈克·哈洛

代码语言:javascript
复制
    var arguments = new Dictionary<string, object>( 2 );
    arguments.Add( "x-message-ttl", 900000 );
    arguments.Add( "x-dead-letter-exchange", "deadLetter" );
    this.requestMessageQueue = Queue.Declare( true, false, false, this.messageQueueConfiguration.RequestMessageQueueName, arguments );

您可以检查通过RabbitMQ管理web接口设置的现有参数。

由于最近的代码更改,直接设置参数的唯一方法是通过管理API,除非您只使用每个队列ttl (x-message-ttl)或expires (x-过期),在这种情况下,您可以使用高级API

票数 3
EN

Stack Overflow用户

发布于 2013-03-09 11:02:48

您是否在订阅后不久就将_bus处理掉?这将关闭订阅频道。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15290541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档