2014-04-01 36 views
0

我正在實現具有Web界面(服務堆棧)和長時間運行的作業服務(servicestack?)的解決方案。使用RedisMQ設計ServiceStack

我已經實現了Web界面,並發現了一個非常好的框架來創建我想要的。我使用redis作爲半可靠的對象存儲。

然後我開始考慮如何實施工作服務。 我原本以爲我做的事就是設置一個簡單的windows服務,並讓redis客戶端接受認爲標記爲求職服務(我到底怎麼確定)。這些都是需要大量資源的非常長時間運行的工作,所以我想要一次節流其中有多少個正在運行,並且如果我可以用工人機器扇出來會很好。

然後我看到ServiceStack有一個RedisMQ可能適合該法案,因此也是一個問題。

我應該創建一個單獨的服務堆棧服務並將其託管在Windows服務中。然後在它上面有一個MQ接口,並讓webservice發送到需要運行的消息隊列作業。然後,該服務從web服務中解脫出來,一切都很好。

難道我在想它,應該只使用我已經運行的服務的邏輯部分和實施工作邏輯,所以,可以在MQ流行,但在相同的過程,很可能只是浪費時間。我可以完全忽略消息部分,只是用一些調節算法直接調用邏輯部分。

還當我是測試這一點我有麻煩創建RedisMQ服務器

using ServiceStack.redis; 
using ServiceStack.messaging; 
var mqHost = new RedisMqServer(redisFactory, retryCount:2); 

返回RedisMQServer沒有找到。

我做了全面的NuGet安裝servicestack和servicestack.redis包

install-package servicestack 
install-package servicestack.redis 

,當我在.dll文件使用對象瀏覽器我沒有找到ReidsMQServer的任何提及,我的版本4.0。 15 我發現這個URL https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Server/Messaging/Redis/RedisMqServer.cs 而且會認爲這應該屬於servicestack.redis參考。

任何幫助表示讚賞, 歡呼

回答