我正在从一个队列向另一个队列发送消息,例如在我的输入队列中,如果有空消息,那么实际消息,当代码开始排队时,它不会向我发送实际消息一旦它看到第一个空信息。
Import queue:
-> empty message
Test -> actual message
这是收到和发送的消息。
if (mqMsg.MessageLength > 0 && mqMsg.DataLength > 0)
{
messageData = mqMsg.ReadString(mqMsg.MessageLength);
}
推出
mqQueue.Put(mqMsg, mqPutMsgOpts);
这就是实施方式:
while(if any message is available)
{
//go a read/get
mqMsg = new MQMessage();
mqGetMsgOpts = new MQGetMessageOptions();
mqQueue.Get(mqMsg);
if (mqMsg.MessageLength > 0 && mqMsg.DataLength > 0)
{
//posted to send method
}
}
另一种方法(发送) - 发送它。
mqPutMsgOpts = new MQPutMessageOptions();
mqQueue.Put(mqMsg, mqPutMsgOpts);
我如何处理这个,即使有空消息,队列也会继续发送消息?
答案 0 :(得分:1)
只需检查MessageLength即可。
if(mqMsg.MessageLength > 0)
{
// Send message to another queue.
}
但重要的是要理解为什么有一个没有身体的消息并解决了这个问题。为什么有人会发送没有正文的消息?