我有一个关于 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/