微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Start-Sleep 在 Runbook powershell 工作流程中不起作用

如何解决Start-Sleep 在 Runbook powershell 工作流程中不起作用

我正在尝试在 Azure 自动化帐户的 Runbook 中使用 Start-Sleep/Sleep。我注意到 sleep 命令没有任何效果,但它在本地起作用。进一步的指令继续执行,好像没有Sleep。我也试过 Wait-Event -Timeout。我尝试在 Inlinescript 部分内外放置命令。

我错过了什么?只有我有这个问题吗?

powershell 工作流程如下所示:

workflow W{
    disable-AzureRmTrafficManagerEndpoint..
    Start-Sleep -Seconds 5
    Stop-AzureWebsiteJob..
    Start-Sleep -Seconds 5
    Start-AzureWebsiteJob..
    Start-Sleep -Seconds 5
    Restart-AzureRmWebApp..
    Start-Sleep -Seconds 5
    Enable-AzureRmTrafficManagerEnpoint..
}

因此,在没有睡眠的情况下,上述指令将被执行。端点被流量管理器禁用和启用,然后我看到 webjob 停止和启动的其他状态。睡眠不生效。

解决方法

工作流旨在以非阻塞方式并发执行多个语句 - 不能保证工作流引擎会等待前一个语句返回。

如果要确保多个语句按顺序同步执行,请使用sequence block

workflow myWorkFlow {
  sequence {
    Do-Something
    Start-Sleep -Seconds 2
    Do-SomethingElse
  }
}

...或者,除非您使用任何特定于工作流的功能,否则请使用常规 PowerShell Runbook 而不是工作流。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。