C# QueueClient.BeginReceive成本

C# QueueClient.BeginReceive成本,c#,azure,servicebus,C#,Azure,Servicebus,据我所知,我甚至可以设定一个24天的期限。 正如我们所知,azure服务总线是按存储事务定价的。我想知道我是否为beginreceive方法设置了一个10天的超时时间,有多少事务被计算在内?1.如果不是1,我如何确定它 下面是我的工作者角色的一个小代码示例。它是怎么定价的 public override void Run() { updaterClient.BeginReceive(TimeSpan.FromDays(1), updaterClientReceiveEnded, null

据我所知,我甚至可以设定一个24天的期限。 正如我们所知,azure服务总线是按存储事务定价的。我想知道我是否为beginreceive方法设置了一个10天的超时时间,有多少事务被计算在内?1.如果不是1,我如何确定它

下面是我的工作者角色的一个小代码示例。它是怎么定价的

public override void Run()
{
    updaterClient.BeginReceive(TimeSpan.FromDays(1), updaterClientReceiveEnded, null);
    loggingQueueClient.BeginReceiveBatch(100, TimeSpan.FromMinutes(1), LoggingQueueClientReceiveEnded, null);

    while (!IsStopped)
    {
        Thread.Sleep(TimeSpan.FromMinutes(1));
    }
}

private async void updaterClientReceiveEnded(IAsyncResult ar)
{
    var brokeredMessage = updaterClient.EndReceive(ar);
    if (brokeredMessage != null)
    {
        var task = Task.Run(() => Updater.Current.Update(brokeredMessage));
        await task;
    }
    updaterClient.BeginReceive(TimeSpan.FromDays(1), updaterClientReceiveEnded, null);

}

private async void LoggingQueueClientReceiveEnded(IAsyncResult ar)
{
    var brokeredMessages = loggingQueueClient.EndReceiveBatch(ar);
    if (brokeredMessages != null)
    {
        var task = Task.Run(() => LogUtil.Current.HandleMessages(brokeredMessages.ToList()));
        await task;
    }
    loggingQueueClient.BeginReceiveBatch(100, TimeSpan.FromMinutes(1), LoggingQueueClientReceiveEnded, null);

}

您每封邮件收取费用(每10000封邮件收取0.01美元),因此,如果该操作产生一封邮件,则无论花费多长时间,您都将为此收取费用


有关更多信息,请参见

。你是按要求收费的。没有消息的请求是可计费单位。例如:如果您使用批接收或发送,您可以节省资金,因为您只发送了一条消息(包括所有brokeredmessage)。我只是不知道,这些长轮询模型是如何定价的。@TamásVarga他们在定价常见问题解答中没有提到批处理,您对此有参考吗?这是针对Windows Azure队列,而不是服务总线队列。