繁体   English   中英

如何触发 RabbitMQ 上传入消息的某些功能

[英]How to trigger some functionality for incoming messages on RabbitMQ

每当 rabbitMq 收到任何消息时,它应该触发某些功能。 我怎样才能做到这一点?

我们可以使用接收事件来完成功能。 下面的代码示例展示了如何做同样的事情。

     ConnectionFactory oFactory = new ConnectionFactory();
     oFactory.UserName = oRabbitMQData.userName;
     oFactory.Password = oRabbitMQData.password;
     oFactory.VirtualHost = oRabbitMQData.virtualHost;
     oFactory.HostName = oRabbitMQData.hostName;
     oFactory.Port = oRabbitMQData.port;

     var connection = oFactory.CreateConnection();

     var channel = connection.CreateModel();
     // setup signal
     var signal = new ManualResetEvent(true);

     oRabbitMQConnections.Add(connection);
     oRabbitMQChannels.Add(channel);

     var consumer = new EventingBasicConsumer(channel);
     byte[] messageBody = null;

     consumer.Received += (sender, args) =>
     {

        messageBody = args.Body;
        string sMsg = UTF8Encoding.UTF8.GetString(messageBody);

        // process your message or store for later
        // set signal

        channel.BasicAck(args.DeliveryTag, false);

       // Do something

        signal.Set();
     };

     // start consuming
     channel.BasicConsume(oRabbitMQData.queueName, false, consumer);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM