我有一个关于 azure 服务总线计费的问题。
如果我有以下代码,并且很长时间没有发送消息,例如 5 小时。

假设我只有一个订阅,代码如下。
在这 5 小时内的这种情况下,我会收取什么费用(是一次发送一次,一次下载,还是我会因 azure 在后台实现的轮询保持事件而产生费用)?

enter code here
   var subscriptionClient = SubscriptionClient.CreateFromConnectionString(ConnString, topic, subscriptionName);
            while (true)
            {

                var message = subscriptionClient.Receive();
                if (message != null)
                {
                    try
                    {
                        message.Complete();


                    }
                    catch (Exception)
                    {
                        // Indicate a problem, unlock message in subscription
                        message.Abandon();
                    }
                }
                else
                {
                    Console.WriteLine("null message received");
                }
                Thread.Sleep(25);
            }

最佳答案

从上面的代码中,每次 Receive 调用返回时(即使结果为空),您都会为一条消息付费。接收调用的默认超时时间为 60 秒,因此在 5 小时内没有消息的情况下,您的代码将每 1 分钟返回一次,然后休眠 25 秒,因此假设每小时您将收到 48 条消息(1 分钟)的费用超时和 25 秒等待)。您可以调用需要超时的 Receive 重载并在那里传递 5 小时超时。在这里,连接将在返回之前保持事件 5 小时,因此在此期间不会产生任何费用。

从信封的背面计算:单个接收器,运行一分钟超时,没有等待,没有真正的消息,每分钟都会收到一条消息。这整个月不到 5 美分。请参阅计费计算器 here

关于c# - Windows Azure 服务总线计费,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14480228/

10-17 02:13