ServiceStack 재사용 사례 유스 케이스 프로젝트의 솔루션을 사용하고 있습니다.Redis MQ로 첫 번째 가입자가 호출되지 않았습니다.
이 솔루션에 아래 코드가 포함 된 새로운 콘솔 앱이 추가되었습니다. EmailMessage가 (즉 SMessageService.Any (EmailMessage 요청) 이메일을 보내 가입자에 의해 처리 된 게시 된 원래의 재사용 성 사용 사례 프로젝트와
.나는 콘솔 응용 프로그램을 실행하면 나는 EmailMessage에 가입하는 두 응용 프로그램을 가지고있는 수단 만 새 콘솔 응용 프로그램은 메시지를 수신 나는 다음이
:.
내 콘솔 응용 프로그램은 다음과 같습니다
class Program
{
static void Main(string[] args)
{
var subscriberHost = new SubscriberHost();
subscriberHost.Init();
Console.WriteLine("Waiting of publishing
to happen on EmailMessage as we are subscribing to it...");
Console.ReadLine();
}
}
public class SubscriberHost : AppHostHttpListenerBase
{
private RedisMqServer mqHost;
public SubscriberHost()
:base("Subscriber console",typeof(EmailMessageEventHandler).Assembly)
{
}
public override void Configure(Container container)
{
var redisFactory = new PooledRedisClientManager("localhost:6379");
mqHost = new RedisMqServer(redisFactory, retryCount:2);
mqHost.RegisterHandler<EmailMessage>((message) =>
{
var emailMessage = message.GetBody();
Console.WriteLine(emailMessage.To);
Console.WriteLine(emailMessage.Subject);
Console.WriteLine(emailMessage.Body);
return new SMessageReceipt {
Type = "not used",
To = "test",
From = "Reusability",
RefId = "1,"
};
});
// mqHost.RegisterHandler<EmailMessage>(ServiceController.ExecuteMessage);
mqHost.Start();
}
}
두 구독자 모두 EmailMessage를 수신 할 것으로 예상했지만 새 콘솔 앱에서만 수신 중입니다. 다른 가입자가 메시지를받지 않는 이유는 무엇입니까?
게시를 수행하는 클라이언트 코드가 수정되지 않았습니다.