我们需要提供一个API端点,用于报告各种外部依赖项的运行状况。其中之一是Azure Service Bus。通过 health ,我们只需要知道服务是否可用并响应连接。
我们的应用程序已在启动时启动服务总线端点,并使用此端点将消息发布到其队列。但是,看起来我可以测试此端点的运行状况的唯一方法是实际将消息发布到队列并检查错误。我宁愿不这样做,因为以后要清理这些消息感觉就像是矫枉过正。
我的另一个想法是使用专用类来创建新端点并启动它。如果没有错误,请再次停止,如下所示。每次我需要检查健康状况时都这样做。
// Build the service bus configuration - connection string etc.
var configuration = _configurationBuilder.Configure(_settings);
IEndpointInstance serviceBusEndpoint = null;
try
{
serviceBusEndpoint = await Endpoint.Start(configuration);
return true;
}
catch
{
return false;
}
finally
{
if (serviceBusEndpoint != null)
{
await serviceBusEndpoint.Stop();
}
}
但是,我怀疑这可能是一种效率较低的方法。是否有更好/更正的方法来实现这一目标?