gpt4 book ai didi

.net - Azure 队列触发器立即达到 MaxDequeueCount

转载 作者:行者123 更新时间:2023-12-05 01:04:51 24 4
gpt4 key购买 nike

我设置了一个 azure 队列触发器:

    [FunctionName("TransformData")]
public async Task Transform(
[QueueTrigger("product-prices")] string message)
{
await TransformAndLoadData(message);
}

每当我通过 QueueClient 将项目添加到队列时:
(RawQueueData 将项目拆分为消息批处理)

    var rawQueueData = new RawQueueData<T>(data);

var sendMessageTasks = rawQueueData.Messages
.Select(m => _queueClient.SendMessageAsync(m));

await Task.WhenAll(sendMessageTasks);

或者将消息从 product-prices-poison 移回 product-prices 队列(使用 Azure 存储资源管理器),触发器立即失败,并显示:

Message has reached MaxDequeueCount of 5. Moving message to queue product-prices-poison.

同步传递项目也会产生同样的问题。

我唯一能够成功触发触发器并处理项目的情况是当我使用 Azure 存储资源管理器手动创建消息时。

增加 MaxDequeueCount 或批量大小不会产生影响。执行前者后的消息是:

Message has reached MaxDequeueCount of 100000. Moving message to queue product-prices-poison.

我还可以使用 QueueClient 手动将项目出列,不会出现任何问题。


我还尝试将接收到的对象类型更改为 QueueMessage、对象和字符串。大多数其他解决方案似乎都专注于更新软件包(我正在使用最新的 - 稳定版 12.8.0)。

编辑:主机.json:

{
"version": "2.0",
"extensions": {
"blobs": {
"maxDegreeOfParallelism": "4"
},
"queues": {
"maxDequeueCount": 5
}
}
}

最佳答案

谢谢你成为我的橡皮鸭。

写完后,我很快意识到 azure storage explorer 的“新消息”之间唯一不同的是编码。

将消息编码切换为 Base64 后,它开始工作。

关于.net - Azure 队列触发器立即达到 MaxDequeueCount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71305020/

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