CodeGo.net>使用MSMQ和WCF
作者:互联网
我早些时候发布了这个问题
post ?
开始阅读wcf和msmq.
我的第一个问题是-假设我的队列中有100条消息,我如何告诉我的服务开始异步处理每条消息,以便它同时处理多条消息.这甚至可能还是总是同步操作?
更新:
假设我的系统是这样的,我也有远程位置/服务器,文件也在那里上传.我所有的处理都在中央位置进行.将利用msmq和wcf将来自远程位置的所有文件复制到中央位置.消息可以由监视DB的应用程序提供,一旦它确定应该复制文件,它就会提供一条消息,WCF服务接收该消息并将文件从远程复制到中央位置.
由于这是一个专用网络,因此可以通过unc路径访问该文件.我知道我的客户会倾向于在某个时候这样做,并尝试根据给定的文件量和同时复制文件的要求确定这是否可行.
我建议使用BITS,但是由于IT部门的政治原因,客户对BITS感到不满意.
解决方法:
WCF服务器端代码将由config中的服务限制设置控制.默认情况下,对于每个请求(队列中的消息),将创建服务类的实例来处理消息.
服务器端WCF ServiceHost将为您处理此管理-无需您进行任何特殊处理.
可以通过serviceThrottling行为来控制服务限制.看看这个出色的blog post by Dan Rigsby,了解如何在配置中设置节流的详细信息.
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="throttled">
<serviceThrottling
maxConcurrentCalls="16"
maxConcurrentInstances="2147483647"
maxConcurrentSessions="10"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
最重要的设置将是maxConcurrentCalls-这定义了WCF服务将处理多少个并发调用.
您还应该查看此blog post here,其中显示了如何使用MSMQ WCF以及与直接MSMQ和HTTP上WCF的对比.出色的介绍,出色的视频.
标签:msmq,wcf,c 来源: https://codeday.me/bug/20191106/2000554.html