我一直在使用Redis文档查看ServiceStack Messaging:
https://github.com/ServiceStack/ServiceStack/wiki/Messaging-and-redis
它似乎很好地解释了基础知识。我不太明白的是,通过MessageFactory发布时的差异和适用的用例:
.CreateMessageProducer.Publish()
和
.CreateMessageQueueClient.Publish()
我计划审核代码,但希望在此处发布此“官方”解释。
答案 0 :(得分:4)
以下是IMessageProducer
和IMessageQueueClient
的API:
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);
}
基本上MessageQueueClient
也是MessageProducer
,但除了从队列中发布获取消息外,还包含其他细粒度方法以及发布和订阅任何MQ主题。
消息客户端和生产者上的类型Publish<T>
API具有相同的行为。