2014-04-01 33 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参考。

任何帮助表示赞赏, 欢呼

回答