4

我一直在这里查看带有 Redis 的 ServiceStack 消息传递文档:

https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-redis

它似乎很好地解释了基础知识。我不太了解的是通过 MessageFactory 发布时的差异和适用用例:

.CreateMessageProducer.Publish()

.CreateMessageQueueClient.Publish()

我计划审查代码,但想在此处发布此代码以获得“官方”解释。

4

1 回答 1

4

以下是 和 的IMessageProducerAPI IMessageQueueClient

public interface IMessageProducer : IDisposable
{
    void Publish<T>(T messageBody);
    void Publish<T>(IMessage<T> message);
}

public interface IMessageQueueClient : IMessageProducer
{
    void Publish(string queueName, byte[] messageBytes);
    void Notify(string queueName, byte[] messageBytes);
    byte[] Get(string queueName, TimeSpan? timeOut);
    byte[] GetAsync(string queueName);
    string WaitForNotifyOnAny(params string[] channelNames);
}

基本上 aMessageQueueClient 也是a MessageProducer,但除了 Publish 之外还包含其他细粒度的方法以从队列中获取消息以及发布和订阅任何 MQ 主题。

Publish<T>消息客户端和生产者上的类型化API 具有相同的行为。

于 2012-11-10T18:41:05.273 回答