【问题标题】:Azure Devops scheduled pipeline does not triggerAzure Devops 计划管道不会触发
【发布时间】:2021-09-17 04:17:25
【问题描述】:

我有以下配置:Azure DevOps 服务器版本 Dev18.M170.8

trigger: none # No CI build
pr: none # Not for pull requests

schedules:
- cron: "* * * * *"
  displayName: Every minute build
  branches:
    include:
    - master
  always: true
  
jobs:
- job: RunMyCustomTask
  pool: 'DedicatedPoolWith1Agent'
  condition: always()
  steps:
  - task: mycustomtask@0'

管道是为单独的存储库创建的,并具有专用代理池。根据配置,它通常应该每分钟运行一次。这对我来说至关重要。我可以更改为每 2 分钟或 5 分钟一次,但没关系,必须以正确的时间间隔精确安排。

现在,我遇到了管道每分钟安排一次的问题,然后,不知何故,它不再被安排。我在一天中检查了这个,碰巧它最多没有安排6分钟。 我不明白为什么会这样。有什么想法或建议吗?我需要保证时间表。 Trigger 和 pr: none 没有区别,不管有没有。 图片示例:

【问题讨论】:

  • 您是否有可能没有足够的代理?可以去代理详情查看Wait time吗?
  • @KrzysztofMadej 正如我在问题中提到的,我有一个专用池和一个专门用于此管道的专用单一代理。没有其他管道使用此代理或池。理论上,Agent 应该每分钟运行一个新的预定管道并执行它,持续时间最长为 1 分钟,通常在 1 分钟内开始到结束。无论如何,这并不能解释为什么 Azure DevOps Server 不会将管道安排为 6 分钟。如果有代理问题,我会安排计划运行,而不是间隙。
  • 点击scheduled runs button会看到什么?
  • @KrzysztofMadej 我为代理工作添加了一个屏幕截图,其中突出显示了问题的时刻。
  • 使用 MS Hosted 代理时也一样吗?你可以检查一下吗?

标签: azure-devops cron azure-pipelines scheduled-tasks jobs


【解决方案1】:

我不确定 Azure DevOps 管道是否适合在短时间内运行频繁、短暂的进程。

文档甚至指出每周有大约 1000 个工作的限制:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/scheduled-triggers?view=azure-devops&tabs=yaml#limits-on-the-number-of-scheduled-runs

您可以安排管道运行的频率有一定的限制。这些限制已经到位,以防止滥用 Azure Pipelines 资源 - 特别是 Microsoft 托管的代理。这个限制是每个管道每周运行大约 1000 次。

根据您的说法,必须以正确的时间间隔精确安排,我会重新考虑管道是否适合这项工作。预定管道没有实时保证。

【讨论】:

  • 我了解 Microsoft Hosted,但我使用自己的资源在本地环境中运行。您的回答与我的问题有何关系?
  • 另外,我明确表示可以更改频率,但需要保证时间/间隔。我不一定需要 1 分钟的 cron 计划管道运行。
  • @XMight 该限制与托管或私人代理无关。就像我说的,没有实时保证。它会尽力在预定的时间运行管道,但由于各种原因(服务不可用、代理不可用等),它可能不会在那个时候立即运行。
  • @DanielMann 所说的很有道理。您可以创建另一个问题,如果您提供更多详细信息,您实际上需要按计划方式运行什么,也许我们会为您找到合适的方法。
猜你喜欢
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 2021-01-13
  • 1970-01-01
相关资源
最近更新 更多