MQ的消息处理时间是指应用接收到消息对消息进行业务处理的时间,根据MQ不同的获取消息的方式,MQ的消息处理时间有不同的计算方式。
MQ可以注册一个监听器来获取消息,当MQ有消息的时候会自动触发此监听器。在这种获取消息的方式下,消息处理时间为监听器自身接口方法的执行时间。
API获取消息的方式也是获取MQ消息的常用方式,一般会在一个循环中不停的获取消息,获取到消息后进行处理,其如以下代码示例:
while (true){
var result = channel.BasicGet("MyExchange", true);
if (result != null){
var body = result.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine("Received: {0}.", message);
}
Thread.Sleep(5000);
}
消息处理时间为一次获取到消息BasicGet方法结束到下一次BasicGet开始,这段时间表示消息处理时间,其等同于一次循环内执行的业务方法的时间。