我需要創建一個服務,它可以在配置的時間間隔內處理排隊的請求。例如,轉到網絡並從網站獲取財務數據,要求我們將請求限制爲每秒一次。我是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服務的異常處理