gpt4 book ai didi

azure - 我的使用者中返回的 Azure 服务总线队列序列号与生产者中返回并在 Azure 门户中显示的序列号不同?

转载 作者:行者123 更新时间:2023-12-02 05:54:50 25 4
gpt4 key购买 nike

当我使用服务总线生产者代码(如下)在 Azure 门户和我的应用程序中创建计划服务总线消息时,我会收到一个序列号。我将其保存在我的数据库中。

问题 - 当我的服务总线消费者代码由计划消息出队触发时,序列号与服务总线生产者代码和通过服务总线生产者代码最初给我的序列号不同Azure 门户。

如图所示,其中“13”是 Azure 门户屏幕中显示的序列号。

enter image description here

这是接收预定消息的代码,可以看到序列号不同!

enter image description here

这是我的消费者代码(不认为这很重要)

    private async Task MessageHandler(ProcessMessageEventArgs args)
{
string body = args.Message.Body.ToString();
JObject jsonObject = JObject.Parse(body);
var eventStatus = (string)jsonObject["EventStatus"];

await args.CompleteMessageAsync(args.Message);

// fetch row here by sequence number
// edit some data from entity, then save
int result = await dbContext.SaveChangesAsync();

}

这是我的生产者代码

    public async Task<long> SendMessage(string messageBody, DateTimeOffset scheduledEnqueueTimeUtc)
{
await using (ServiceBusClient client = new ServiceBusClient(_config["ServiceBus:Connection"]))
{
ServiceBusSender sender = client.CreateSender(_config["ServiceBus:Queue"]);

ServiceBusMessage message = new ServiceBusMessage(messageBody);

var sequenceNumber = await sender.ScheduleMessageAsync(message, scheduledEnqueueTimeUtc);

return sequenceNumber;
}
}

最佳答案

来自documentation :

The SequenceNumber for a scheduled message is only valid while the message is in this state. As the message transitions to the active state, the message is appended to the queue as if had been enqueued at the current instant, which includes assigning a new SequenceNumber.

关于azure - 我的使用者中返回的 Azure 服务总线队列序列号与生产者中返回并在 Azure 门户中显示的序列号不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68027957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com