Pub/Sub Message Order
使用 pub/sub API 时,将决定是否应该顺序或并行处理来自同一连接的消息。强烈建议你尽可能使用并发处理。
按顺序处理它们意味着你不必担心(非常多)线程安全性,并且你可以保留事件的顺序:它们将按照与接收它们的顺序完全相同的顺序(通过队列)进行处理,但结果是,消息可能会彼此延迟。
var channel = multiplexer.GetSubscriber().Subscribe("messages");
channel.OnMessage(message =>
{
Console.WriteLine((string)message.Message);
});
另一个选项是并发处理。这对工作的处理顺序没有任何具体保证,并且你的代码要负责确保并发消息不会破坏内部状态:但是它可以更快,更可扩展。如果消息是不相关的,就更有效。
multiplexer.GetSubscriber().Subscribe("messages", (channel, message) => {
Console.WriteLine((string)message);
});