caching - 如何避免缓存恢复超时
问题描述
我对 Maven 存储库进行了缓存,Cache@2
以防止额外的下载,特别是因为 Maven Central 可能会产生零字节文件。
但是,我在构建日志中收到了诸如此类的事件,当它发生时,它会显着减慢构建步骤。
2020-02-14T03:24:14.9261543Z Information, Downloaded 340.2 MB out of 447.6 MB (76%).
2020-02-14T03:24:18.3130567Z Warning, [https://37bvsblobprodcus311.blob.core.windows.net/db184fb09aee8f4ae39869ebeab81ab1ad/7FE2B04FAB9DCB08C78F137CCA2FDA2D5E37B05B5DBCA1D7EDD23F7DB5D580B301?sv=2017-04-17&sr=b&sig=mZZ1kK00Gc2cg5m6dyRB3XUYVB40dxJkvBMbXW4D3cM%3D&spr=https&se=2020-02-15T03%3A29%3A57Z&sp=r&rscl=x-e2eid-c561122c-76784a8c-be2cb59f-c79091dc-session-eacd1913-b0014305-a33f0081-46cabc28] Try 1/5, non-retryable exception caught. Throwing. Details:
2020-02-14T03:24:18.3131821Z Task was requested to be canceled. System.Threading.Tasks.TaskCanceledException: A task was canceled.
2020-02-14T03:24:18.3132112Z at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
2020-02-14T03:24:18.3132355Z at System.Net.Http.NoWriteNoSeekStreamContent.<>c.<SerializeToStreamAsync>b__4_0(Task t, Object s)
2020-02-14T03:24:18.3132630Z at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
2020-02-14T03:24:18.3133177Z --- End of stack trace from previous location where exception was thrown ---
2020-02-14T03:24:18.3133445Z at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
2020-02-14T03:24:18.3133903Z --- End of stack trace from previous location where exception was thrown ---
2020-02-14T03:24:18.3134179Z at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task serializeToStreamTask, MemoryStream tempBuffer)
2020-02-14T03:24:18.3134413Z at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
2020-02-14T03:24:18.3134691Z at Microsoft.VisualStudio.Services.Common.TaskCancellationExtensions.EnforceCancellation[TResult](Task`1 task, CancellationToken cancellationToken, Func`1 makeMessage, String file, String member, Int32 line)
2020-02-14T03:24:18.3134970Z at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupStoreHttpClient.<>c__DisplayClass57_0.<<GetRedirectResponseAsync>b__0>d.MoveNext()
2020-02-14T03:24:18.3135439Z --- End of stack trace from previous location where exception was thrown ---
2020-02-14T03:24:18.3135708Z at Microsoft.VisualStudio.Services.Content.Common.AsyncHttpRetryHelper`1.InvokeAsync(CancellationToken cancellationToken)
2020-02-14T03:24:18.3150625Z Warning, [https://37bvsblobprodcus311.blob.core.windows.net/db184fb09aee8f4ae39869ebeab81ab1ad/7FE2B04FAB9DCB08C78F137CCA2FDA2D5E37B05B5DBCA1D7EDD23F7DB5D580B301?sv=2017-04-17&sr=b&sig=mZZ1kK00Gc2cg5m6dyRB3XUYVB40dxJkvBMbXW4D3cM%3D&spr=https&se=2020-02-15T03%3A29%3A57Z&sp=r&rscl=x-e2eid-c561122c-76784a8c-be2cb59f-c79091dc-session-eacd1913-b0014305-a33f0081-46cabc28] Try 1/5, retryable exception caught. Retrying in 00:00:01. System.Threading.Tasks.TaskCanceledException: A task was canceled.
2020-02-14T03:24:18.3151412Z at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
2020-02-14T03:24:18.3151697Z at System.Net.Http.NoWriteNoSeekStreamContent.<>c.<SerializeToStreamAsync>b__4_0(Task t, Object s)
2020-02-14T03:24:18.3151962Z at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
2020-02-14T03:24:18.3152497Z --- End of stack trace from previous location where exception was thrown ---
2020-02-14T03:24:18.3152771Z at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
2020-02-14T03:24:18.3153248Z --- End of stack trace from previous location where exception was thrown ---
2020-02-14T03:24:18.3153496Z at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task serializeToStreamTask, MemoryStream tempBuffer)
2020-02-14T03:24:18.3153749Z at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
2020-02-14T03:24:18.3154100Z at Microsoft.VisualStudio.Services.Common.TaskCancellationExtensions.EnforceCancellation[TResult](Task`1 task, CancellationToken cancellationToken, Func`1 makeMessage, String file, String member, Int32 line)
2020-02-14T03:24:18.3154606Z at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupStoreHttpClient.<>c__DisplayClass57_0.<<GetRedirectResponseAsync>b__0>d.MoveNext()
2020-02-14T03:24:18.3155603Z --- End of stack trace from previous location where exception was thrown ---
2020-02-14T03:24:18.3155739Z at Microsoft.VisualStudio.Services.Content.Common.AsyncHttpRetryHelper`1.InvokeAsync(CancellationToken cancellationToken)
2020-02-14T03:24:18.3155929Z at Microsoft.VisualStudio.Services.BlobStore.WebApi.DedupStoreHttpClient.<>c__DisplayClass60_0.<<HandleRedirectAsync>b__0>d.MoveNext()
2020-02-14T03:24:18.3159451Z --- End of stack trace from previous location where exception was thrown ---
2020-02-14T03:24:18.3159789Z at Microsoft.VisualStudio.Services.Content.Common.AsyncHttpRetryHelper`1.InvokeAsync(CancellationToken cancellationToken)
2020-02-14T03:24:19.9319176Z Information, Downloaded 340.2 MB out of 447.6 MB (76%).
2020-02-14T03:24:24.9323050Z Information, Downloaded 352.6 MB out of 447.6 MB (79%).
有什么办法可以避免吗?我还检查了https://status.dev.azure.com/并没有迹象表明它有任何问题。这些是付费的Azure Devops 代理池,而不是专用代理池。
解决方案
这里有一个类似的问题。您可以加入该线程的讨论或为上述案例打开新问题。
您可以尝试在continueOnError: true
缓存任务上使用的解决方法,以防止其构建失败。
- task: Cache@2
inputs:
key: 'npm | "$(Agent.OS)" | package-lock.json'
restoreKeys: |
npm | "$(Agent.OS)"
npm
path: $(npm_config_cache)
displayName: Cache npm
continueOnError: true
推荐阅读
- javascript - 反应中带有 JSX.Element 的 TypeScript 类型将不接受 .map() 并给出错误 TS2339
- json - 我正在尝试将 Jolt 变换用于以下嵌套结构
- numpy - 无法从不同 conda env 的站点包中导入 NumPy
- linux - 使用 sed\awk 显示两个连续行之间不同的时间戳
- javascript - 我想得到一次评论,因为它重复了多次
- php - 上传文件并使用 Laravel 中的行 ID 将其保存在数据库中
- python - 从 Pandas 中的 DataFrame 中删除特定列
- delphi - 如何为 delphi 程序启用 UAC?
- sorting - 从最近到最远对点进行排序
- java - 我们如何在 Helidon SE 中使用 REST 和 SOAP 服务