2011-03-01 110 views
0

我有一個要求排隊Web服務請求,然後根據優先級和請求時間處理每個請求。然後發送迴應。如何處理排隊的WCF Web服務請求

我在考慮的方法如下 1創建一個Web服務方法來提交請求和入隊請求。

2創建兩個隊列(高優先級請求和低優先級請求)

3創建的處理方法來處理在同一時間每個請求一個(出列的高優先級隊列第一,如果它存在的話)處理,然後存儲該響應

4創建一個字典來存儲相應請求的響應。 5創建Web服務方法來獲取響應

我在考慮在內存隊列中使用,因爲我預計一次排隊的請求數量很少。

我遇到的問題是在第3步。我希望處理器方法能夠在隊列中存在請求的情況下持續運行。

如何使用WCF Web服務完成第3步? 我正在使用.NET 4.0環境。 我很欣賞任何想法或建議。

感謝

回答

0

你有沒有在一個平面簡,肉和土豆的方式編碼的服務及異形,看是否有必要請求排隊?排隊涉及開銷。做一些測量並查看是否僅僅提供服務就足夠了。

接近它的另一種方法是使用Microsoft Message Queuemessage queues and WCF之間甚至有一些緊密的整合。思想是,如果你確實需要一個隊列,爲什麼不使用已經構建和測試的東西。

+0

我想要使用隊列的原因是因爲實際的請求處理將由外部接口完成,該接口每次只處理一個請求(這是SDLC點對點鏈接到IBM 3270顯示) – Yared 2011-03-01 01:15:42

+0

我會帶一個看看MSMQ和WCF的整合。這可以解決我的問題。謝謝。 – Yared 2011-03-01 01:24:44

1

我會創建我的服務合同,以明確操作將排隊。像這樣:

[OperationContract] 
string EnqueueRequest(int priority, RequestDetails details); 

[OperationContract] 
bool IsRequestComplete(string requestId); 

我會有EnqueueRequest放置每個請求到一個MSMQ隊列。我有一個Windows服務處理隊列中的請求。該服務將是唯一可以訪問SDLC設備的進程。

相關問題