我无法在我的应用程序(C#Application)中使用并行线程,因为每个msmq msg都是sql语句的数据
C#Application消耗msmq中的消息,然后对其进行处理。
我正在使用msg.Recoverable = true,以防止服务器断电时数据丢失。 目前,这是交易消息。
必须按顺序(FIFO)按顺序处理msmq消息(sql语句)
使用多个线程消耗是一个禁忌,因为无法控制将使用哪个线程并执行哪个sql语句。
目前,msmq消息的490 KB的Receive()速度约为0.016 -0.032秒,大约为30-50 Tx / sec,这是不可接受的。
目前,MSMQ接收是整个应用程序的瓶颈
服务器位于Windows Server 2008 R2上
并且应用程序从本地服务器MSMQ获取(Receive()),而不是远程
答案 0 :(得分:1)
我不是专家,但我认为您可以尝试使用批处理 - http://msdn.microsoft.com/en-us/library/ms788973.aspx
答案 1 :(得分:0)
此博客讨论了如何创建多个“QueuePeekCompleted”事件处理程序。它对我有用。
http://code-ronin.blogspot.com/2008/09/msmq-transactional-message-processing.html