我正在尝试克服使用 Microsoft Graph SDK 上传/更新 SharePoint 文档库中文件的元数据时发生的间歇性 409 错误。要重试失败的调用,SDK 提供了 WithMaxRetry() 和 WithShouldRetry() 选项。MaxRetry 适用于错误代码 429,我假设 ShouldRetry 委托为我们提供了一个选项来实现我们自己的重试逻辑。基于这个假设,我有以下代码:
_graphServiceClientFactory.GetClient().Drives[driveId].Root.ItemWithPath(path).ListItem.Fields.Request()
.WithShouldRetry((delay, attempt, httpResponse) =>
(attempt <= 5 &&
(httpResponse.StatusCode == HttpStatusCode.Conflict)))
.UpdateAsync(new FieldValueSet { AdditionalData = dataDictionary });
在我的测试中,ShouldRetry 委托从未被调用/评估失败/否则,没有关于 WithShouldRetry() 用法的文档。获取有关使用 WithShouldRetry() 选项的输入会很有帮助。