我有一个由AzureDevOps Release管道运行的长期迁移(不要问(。具体来说,它是一个";Azure SQL数据库部署";活动,运行";SQL脚本文件";部署类型。
尽管在Invoke-Sql Additional Parameters设置中配置了所有超时的最大值,但我的迁移仍然超时。
具体来说,我得到:
我们不再收到代理Hosted agent的消息。请验证代理计算机是否正在运行并具有正常的网络连接。任何终止代理进程、使其缺少CPU或阻止其网络访问的操作都可能导致此错误。
到目前为止,它在之后超时
- 6:13:15
- 6:13:18
- 6:14:41
- 6:10:19
所以";在6个半小时之后";。大约22400秒,这似乎也不是任何明显的数字:(
为什么?我该如何修复它?
事实证明,AzureDevOps使用托管代理来执行管道中的每个任务,这些代理具有固有的生存期,与它们运行的任何任务无关。
https://learn.microsoft.com/en-us/azure/devops/pipelines/troubleshooting/troubleshooting?view=azure-devops#作业超时
管道可能会运行很长时间,然后由于作业超时而失败。作业超时与所使用的代理密切相关。免费的Microsoft托管代理对于私有存储库,每个作业的最大超时时间为60分钟,对于公共存储库,则为360分钟。要增加作业的最大超时时间,您可以选择以下任一项。
- 购买一个Microsoft托管的代理,它将为您提供360分钟的时间来处理所有作业,而不考虑使用的存储库
- 使用自托管代理来排除由该代理引起的任何超时问题了解有关作业超时的详细信息
所以我正在打";360分钟";限制(大概他们会给你额外的一点,这样就没有人抱怨了?(。
解决方案是使用自托管代理(或者让我的迁移在6小时内运行,当然(