C# Azure通知中心静态实例或重新创建
使用c#Azure通知中心客户端的正确方法是什么 我们在一个使用率非常高的服务器上使用它,每天发送数百万次推送 我想知道我们是应该每次重新创建C# Azure通知中心静态实例或重新创建,c#,azure,push-notification,azure-notificationhub,C#,Azure,Push Notification,Azure Notificationhub,使用c#Azure通知中心客户端的正确方法是什么 我们在一个使用率非常高的服务器上使用它,每天发送数百万次推送 我想知道我们是应该每次重新创建NotificationHubClient,还是应该保留它的一个静态/单例实例,然后每次都重用它 /// <summary> /// Get refence to the azure hub /// </summary> /// <returns></returns>
NotificationHubClient
,还是应该保留它的一个静态/单例实例,然后每次都重用它
/// <summary>
/// Get refence to the azure hub
/// </summary>
/// <returns></returns>
private static NotificationHubClient GetHub(NotificationHub nhub, bool enableTestSend = false)
{
return NotificationHubClient.CreateClientFromConnectionString(nhub.EndPoint, nhub.HubName, nhub.AllowDiagnosticSend && enableTestSend);
}
//
///获取azure中心的引用
///
///
私有静态NotificationHubClient GetHub(NotificationHub nhub,bool enableTestSend=false)
{
从ConnectionString(nhub.EndPoint、nhub.HubName、nhub.AllowDiagnosticSend和enableTestSend)返回NotificationHubClient.CreateClient;
}
目前,我们每次发送推送通知时都会重新创建它。然而,根据我个人的经验,我知道我们在.NETHTTP客户机上遇到了问题,并且它没有足够快地释放tcp套接字。我担心这个库可能会出现类似的问题。我建议使用Singleton并重用它,而不是每次都创建一个新实例 GitHub上已经报告了一个问题,您当前的策略(每次创建一个新实例)在负载非常高的情况下失败 您也可以遵循下面的stackoverflow讨论
是否有任何文档说明singleton实例可以安全使用?没有,Azure中没有此类文档说明singleton可以安全使用。您可以参考下面的GitHub关闭问题,其中人们尝试使用singleton,但他们面临一些由Azure团队修复的问题。