在 Microsoft ServiceBus 文档中的代码示例中,以下代码用于确保主题存在。
// Create the topic if it does not exist already
string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");
var namespaceManager =
NamespaceManager.CreateFromConnectionString(connectionString);
if (!namespaceManager.TopicExists("TestTopic"))
{
namespaceManager.CreateTopic("TestTopic");
}
但是我想知道TopicExists
如果我在发送消息之前输入此代码,调用将有多贵。(假设我不想单独有初始化代码)
另一种方法是保持乐观并在不检查主题存在和处理的情况下发送消息MessagingEntityNotFoundException
。如果出现异常,我们可以创建主题并重试发送消息。
第二种方法对我来说似乎更好,但我找不到任何支持它的参考资料。所以我想知道,微软在他们的文档和示例中选择第一种方法而不是处理异常是否有特殊原因。