我們使用InMemoryTransientMessageService在服務之間鏈接多個單向通知。我們不能使用Redis提供程序,到目前爲止我們並不需要它。同步調度就足夠了。嵌套IMessageQueueClient使用ServiceStack發佈InMemoryTransientMessageService
在處理另一個發佈的服務中使用發佈時,我們正在試驗問題。在僞代碼中:
FirstService.Method() _messageQueueClient.Publish(obj);
SecondService.Any(obj) _messageQueueClient.Publish(obj);
ThirdService.Any(OBJ)
的SecondMessage從未處理。在ServiceStack TransientMessageServiceBase,在處理第二個消息的下面的代碼,服務「isRunning」,所以它不會嘗試處理第二:
public virtual void Start()
{
if (isRunning) return;
isRunning = true;
this.messageHandlers = this.handlerMap.Values.ToList().ConvertAll(
x => x.CreateMessageHandler()).ToArray();
using (var mqClient = MessageFactory.CreateMessageQueueClient())
{
foreach (var handler in messageHandlers)
{
handler.Process(mqClient);
}
}
this.Stop();
}
我不知道要改變這種行爲的影響爲了能夠嵌套/鏈接消息發佈。你認爲取消這張支票是安全的嗎?其他一些想法?