如何解决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 举报,一经查实,本站将立刻删除。