我需要创建一个服务,它可以在配置的时间间隔内处理排队的请求。例如,转到网络并从网站获取财务数据,要求我们将请求限制为每秒一次。我是WCF的新手,我不确定(1)WCF和MSMQ是否适合执行此操作? (2)如果是的话,执行间隔的最佳机制是什么?一个线程等待?一个计时器(不知道如何工作)。排队的WCF服务每X秒处理一次
2
A
回答
2
WCF中没有任何内容可以让你明确地处理它,所以你仍然需要自己完成所有的工作。
尽管您的服务可以处理来自MSMQ的请求,但WCF中的MSMQ侦听器将尽快选择并处理消息;你不能将它们配置为每隔X秒处理一次消息(你可以使用正确的工具来伪造消息,但在我看来,它并不是那么棒)。
如果处理请求之间的延迟时间不是很短,可以使用一个中间队列来保存未决请求。也就是说,无论发送真正的请求,他们都将它们写入队列中,而无人直接监听队列(队列A),而WCF服务在不同的队列(队列B)上侦听。然后,有其他的东西(可以像从任务调度程序运行的脚本一样简单)每X秒/分钟/什么运行一次,并从队列A移动一个消息到队列B,从而触发实际的WCF服务运行。
0
或者您可以使用窗口服务来消费消息。如果您没有在发布消息时使用WCF功能,那么您可能没有理由首先使用wcf
2
WCF和MSMQ是一个伟大的团队!绝对值得一试。
WCF没有提供的部分是“每x秒检查一次”。这里最好的办法是将您的WCF服务托管在Windows NT服务中,并且在NT服务中有一个计时器,每隔x秒检查一次MSMQ队列。真的不应该太难实施。美丽之处在于:您可以非常容易地在NT服务中自行托管WCF服务 - 只需几行代码,即可完全控制正在发生的事件以及何时发生。有关详细信息,请参阅How to Host a WCF service in a managed application上的MSDN文档。
资源:
相关问题
- 1. 如何处理排队的WCF Web服务请求
- 2. 每隔X秒致电WCF - Windows服务或计划任务
- 3. Android每5秒启动一次服务
- 4. 每10秒启动一次服务
- 5. 每30秒运行一次Android服务
- 6. 处理程序每5秒运行一次任务Kotlin
- 7. 使WCF SOAP服务每秒发送X个请求
- 8. 排队请求与WCF服务
- 9. WCF服务和请求排队
- 10. WCF服务排队所有请求
- 11. 执行器服务每x秒运行
- 12. 每x秒执行一次动作delphi
- 13. 每X秒更新一次数据库
- 14. 每x秒运行一次代码
- 15. 每x秒发送一次通知
- 16. 每x秒检查一次html页面
- 17. 从nodejs处理wcf服务
- 18. 错误WCF服务处理
- 19. WCF服务异常处理
- 20. 如何正确处理一个排队代理的排队nsoperation
- 21. 只能每X秒运行一次内部代码的代理
- 22. 节点http服务器每秒可以处理多少个请求而不排队任何请求?
- 23. Android每隔X秒运行一次任务
- 24. 在Arduino上每y秒执行一次x秒的功能
- 25. Android make方法每X秒运行一次(涉及gps和服务器调用)
- 26. 使用PowerShell每x秒运行一个批处理文件
- 27. NHibernate会话在每次wcf服务方法调用时都被处理掉
- 28. 在WCF Web服务内部处理WCF Windows服务客户端
- 29. 每10秒运行一次的Android服务
- 30. wcf服务的异常处理