您能解释一下,使用可恢复邮件时将使用多少RAM内存? 我知道,一条消息消耗大约70-80字节,这是好的,我知道消息体将保存到磁盘,但它可能还复制到RAM的主体? 我尝试用快速和可恢复的消息测试它(消息存储限制是1GB) - 并且在我看到进程资源管理器的两种情况下,msmq服务进程到达他的工作集(内存)到1gb。我明白,如果是快递消息,那也没关系,但是有了可恢复的消息,它会少得多!
第二个问题是关于MSMQ回调限制。
如果您收到带回叫的邮件,请考虑每个进程都可以 最多只能注册63个回调。如果你的回调在队列上等待 无限期地没有活动,您可能会达到此限制。
它适用于所有队列还是仅适用于一个队列?例如,我有处理,我做了类似的事情:
QueueFirst = new MessageQueue(@".\test") { Formatter = new BinaryMessageFormatter() };
QueueFirst.ReceiveCompleted += QueueOnReceiveCompleted;
QueueSecond = new MessageQueue(@".\test") { Formatter = new BinaryMessageFormatter() };
QueueSecond.ReceiveCompleted += QueueOnReceiveCompleted;
for (int i = 0; i < 63; i++)
{
QueueFirst.BeginReceive(TimeSpan.FromSeconds(10), "", Callback);
QueueSecond.BeginReceive(TimeSpan.FromSeconds(10), "", Callback);
}
我能这样做吗?我问,因为如果我将周期上限设置为超过63,那么没有什么不好的事情发生。我正在使用这个method overload,因为在帮助中有一些关于回调的东西,是否意味着使用事件处理程序没有任何限制?