gpt4 book ai didi

c# - Azure函数: Move to poison blob without retry if a particular exception is thrown

转载 作者:行者123 更新时间:2023-12-02 00:13:08 26 4
gpt4 key购买 nike

我有一个 blob 触发函数,其中数据从 Json 字符串反序列化,然后完成进一步的处理并将数据保存到数据库。

我的blob触发功能最大重试次数设置为5。这意味着如果blob进程失败,它将重试5次,然后将blob移动到poison blob。

如果反序列化失败,则无需重试5次。因此,如果引发反序列化异常,我需要将 blob 移动到毒 blob 而无需重试。有什么办法可以解决这个问题吗?

最佳答案

对于这种情况,据我所知,没有内置解决方案,但您可以将输出绑定(bind)添加到有害队列,并以此处描述的形式手动插入消息:

https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#trigger---poison-blobs

The queue message for poison blobs is a JSON object that contains the following properties:

FunctionId (in the format .Functions.)

BlobType ("BlockBlob" or "PageBlob")

ContainerName

BlobName

ETag (a blob version identifier, for example: "0x8D1DC6E70A277EF")

[FunctionName("blobtrigger")]
public static async Task Run(ILogger log, ExecutionContext executionContext,
[BlobTrigger("blobs/{name}")] Stream blob,
[Queue("webjobs-blobtrigger-poison")] CloudQueue poisonQueue)
{
try {
// do something
throw new JsonSerializationException();
}
catch (JsonSerializationException ex)
{
log.LogError(ex, ex.Message);
await poisonQueue.AddMessageAsync(new CloudQueueMessage()); // your message
}
}

关于c# - Azure函数: Move to poison blob without retry if a particular exception is thrown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52867202/

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