我需要在ServiceStack应用程序中集成MQ功能。我已经在AppHost中注册了消息处理程序。我的ServiceStack request(Post)的处理程序会将消息发布到MQ代理。我已经为该消息创建了使用者。一切都很好。
现在,我需要拥有多个线程来使用消息并对其进行处理。我已经阅读到RabbitMQ的ServiceStack实现提供了为一个操作指定多个线程的功能:https : //github.com/ServiceStack/ServiceStack/wiki/Rabbit-MQ#allocating-multiple-threads-for-specific-operations
但是我无法指定这些线程。我已经将处理程序注册为
container.Register(c => new RabbitMqServer());
var mqServer = container.Resolve();
mqServer.RegisterHandler(ServiceController.ExecuteMessage,noOfThreads:4);
但这给了我错误,因为RegisterHandler没有参数'noOfThreads'。我正在为ServiceStack RabbitMQ运行4.0.24.0版本。我还有其他想念的地方吗?
该noOfThreads是仅在RabbitMqServer可用的,而不是通用IMessageService的一个特征。您需要将从Container.Resolve()返回的IMessageService强制转换为RabbitMqServer。
container.Register<IMessageService>(c => new RabbitMqServer());
var mqServer = (RabbitMqServer)container.Resolve<IMessageService>();
mqServer.RegisterHandler<CallBatchMessage>(ServiceController.ExecuteMessage, noOfThreads: 4);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句