我需要創建一個服務,它可以在配置的時間間隔內處理排隊的請求。例如,轉到網絡並從網站獲取財務數據,要求我們將請求限制爲每秒一次。我是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. 每10秒啓動一次服務
- 3. 每30秒運行一次Android服務
- 4. Android每5秒啓動一次服務
- 5. 處理程序每5秒運行一次任務Kotlin
- 6. WCF服務和請求排隊
- 7. 排隊請求與WCF服務
- 8. 執行器服務每x秒運行
- 9. 每x秒執行一次動作delphi
- 10. 每x秒檢查一次html頁面
- 11. 如何正確處理一個排隊代理的排隊nsoperation
- 12. 從nodejs處理wcf服務
- 13. 錯誤WCF服務處理
- 14. 節點http服務器每秒可以處理多少個請求而不排隊任何請求?
- 15. 在Arduino上每y秒執行一次x秒的功能
- 16. NHibernate會話在每次wcf服務方法調用時都被處理掉
- 17. 在WCF Web服務內部處理WCF Windows服務客戶端
- 18. 使用排隊的任務處理列表。如何確保列表中的每個值僅使用一次?
- 19. 處理大型對象的WCF服務
- 20. 使用批處理腳本每10秒複製一次文件 - 只有一次
- 21. 創建服務器處理隊列
- 22. WCF服務URL的一部分每次都會動態生成
- 23. Android循環服務每5秒啓動一次啓動
- 24. 每秒撥打一次json網絡服務
- 25. 排隊WCF Silverlight的
- 26. 保存每X秒處理中的輸出
- 27. 服務總線隊列主機服務的異常處理
- 28. WCF REST服務 - 通用異常處理
- 29. 如何處理wcf服務同步?
- 30. WCF異步服務器端處理