3

我对 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);
            }
4

2 回答 2

1

只计算消息事务(发送、接收)... Azure 不为 KeepAlive 消息收费...

参考 MSDN 主题:http: //msdn.microsoft.com/en-us/library/hh667438.aspx#BKMK_SBv2FAQ2_1

于 2013-01-24T07:16:10.220 回答
1

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

从信封的背面计算:单个接收器,以一分钟超时运行,无需等待且没有真正的消息,将每分钟收取一条消息费用。整个月不到 5 美分。在此处查看计费计算器

于 2013-01-25T18:30:26.983 回答