111,098
社区成员




this.connection = new ConnectionFactory()
{
AutomaticRecoveryEnabled = true,
NetworkRecoveryInterval = TimeSpan.FromSeconds(10),
RequestedHeartbeat = 60,
};
this.channel = connection.GetChannel(uri);
channel.ConfirmSelect();
this.channel.QueueDeclare(queue, true, false, false, null);
this.consumer = new EventingBasicConsumer(channel);
this.consumer.Received += Consumer_Received;
this.channel.BasicConsume(queue, false, consumer);
//事件处理,自己反序列化一下
private void Consumer_Received(object sender, BasicDeliverEventArgs e)
{
var type = Type.GetType(e.BasicProperties.Type);
var result = BinarySerializer / JsonSerializer.DeserializeObject(e.Body, type);
}
//往队列里发消息
var correlationId = Guid.NewGuid().ToString();
var request = channel.CreateBasicProperties();
request.ReplyTo = queue;
request.CorrelationId = correlationId; //并发控制用
request.Type = typeof(Output).AssemblyQualifiedName;
上面就是最基本的处理的,文档里有demo的,不要用while+thread