问题描述
我正在利用Azure SDK的服务将遥测数据记录到Azure事件中心。我的客户端应用程序调用API端点,该端点实例化EventHubProducerClient以将数据记录到事件中心。我正在管理许多api调用,并且想知道EventHubProducerClient是否可以在多个调用之间重用,还是应该在每个调用中使用新的实例。
解决方法
是的。 EventHubProducerClient
在应用程序的整个生命周期中都是可以安全缓存和使用的,这是当您的应用程序定期或半定期发布事件时的最佳实践。在内部,生产者将管理其基础资源,并透明地尝试在不活动期间保持较低的资源使用量,并在较高使用期间管理其健康状况。
在应用程序关闭时调用其CloseAsync
方法将确保正确清理网络资源和其他非托管对象。
侧面说明: EventHubProducerClient
的一个常见问题是,如果可以安全地将其视为长寿的话,为什么要实施IAsyncDisposable
。在某些情况下,为方便起见,在发布很少且资源是应用程序关注的情况下进行此操作,部分是为了模仿HttpClient
的模式。