高速プロデューサー/低速コンシューマーのバリエーションである (MSMQ を使用した) メッセージングに問題があります。プライベート MSMQ キューで未処理の未消費メッセージ数を取得する方法はありますか? それを使用してプロデューサーを抑制したいと思います。
MSMQ でセマフォ パラダイムを使用したいと考えています。このパラダイムでは、未処理のメッセージ数が指定された数よりも少ない場合にのみプロデューサー アプリケーションがメッセージを送信します。
基本的に、私は次のようなことをしたいと思います
///Producer pseudo-code
public void SendMessage(Message message, int totalMessagesSentCounter)
{
if (totalMessagesSentCounter % 1000 == 0)
{
while (outgoingQueue.GetMessageCount() > X) ///Is this possible?
{
Sleep(Y milliseconds);
}
}
outgoingQueue.Send(Message);
totalMessagesSentCounter++;
}
私の構成:MSMQ 3.0でXP / 2003に勝つ