如何通过 PowerShell 检查 Continuous Webjobs Stop 和 Start 是否正确完成?

How to check Continuous Webjobs Stop and Start properly done or not through PowerShell?

任何人都可以建议我如何完成 webjobs 停止和启动是否正确发生的验证?目前,我正在通过 PowerShell 停止和启动网络作业,但我需要在停止和启动后验证是否正确完成或 not.Please 分享您对 this.As 的想法我一直在在线和博客上搜索正确的解决方案没有一次可以使用 VSTS PowerShell Task.Or 通过 VSTS 为 this.I am 运行 PowerShell 脚本提供确切的解决方案,否则请更新任何其他方式来验证来自 VSTS 的网络作业?

它会在几秒钟内停止 web 作业,因此您可以在几秒钟后检查状态。例如:

[object]$paramObj=Get-Content "d:\a\r1\a\continuous\Scripts\Webjobs_Parameters.json" |ConvertFrom-Json 
    $userName =$paramObj.userName 
    $password =$paramObj.password
    $webAppName =$paramObj.webAppName
    $resourceGroup=$paramObj.resourceGroup
    [object[]]$webJobs=$paramObj.webJobs
$Apiversion="2016-08-01"
$webJobArr=New-Object System.Collections.ArrayList
    foreach($wj in $webjobs)
    {
    $webJobArr.Add($wj.name)
     if($wj.typeName -eq "continuous")
     {
Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroup -ResourceType Microsoft.Web/sites/ContinuousWebJobs -ResourceName "$webAppName/$($wj.name)" -Action stop -ApiVersion $Apiversion -Force
      Write-Host "continuous"
     Write-Host "$wj.name is Stopping"
     }
    }
$tryCount=4
 $i = 1
 while($i -lt $tryCount){
 $errorsJobs=New-Object System.Collections.ArrayList
 Start-Sleep -s 5
 Write-Host "starting $i try......."
 $i +=1

  $continuejobs=Get-AzureRmResource -ResourceGroupName $resourceGroup -ResourceName $webAppName -ResourceType Microsoft.web/sites/ContinuousWebJobs -ApiVersion $Apiversion 
foreach($webJob in $continuejobs)
{
if($webJobArr -contains $webJob.Properties.name){
    if($webJob.Properties.status -ne "Stopped"){
        $errorsJobs.Add($webJob.Properties.name)
    }
}
}
if($errorsJobs.Count -gt 0){
$result=$errorsJobs -join ";"
Write-Host "Some jobs are not stopped: $result. Try to check again"
}
else{
Write-Host "All jobs are stopped."
break
}
if(($i -eq $tryCount) -and ($errorsJobs.Count -gt 0)){
Write-Error "Some jobs are not stopped: $result."
}

 }

更新 1:

param(
[string]$currentEnv
)

[object]$paramObj=Get-Content "d:\a\r1\a\DSPPortalJobs\WebJobs_scripts\WebJob_list.json" |ConvertFrom-Json
   $userName =$paramObj.$currentEnv.userName
    $password =$paramObj.$currentEnv.password
    $webAppName =$paramObj.$currentEnv.webAppName
    $resourceGroup=$paramObj.$currentEnv.resourceGroup
    [object[]]$webJobs=$paramObj.$currentEnv.webJobs
$Apiversion="2016-08-01"
$webJobArr=New-Object System.Collections.ArrayList
     foreach($wj in $webjobs)
        {
        $webJobArr.Add($wj.name)
}
$tryCount=4
 $i = 1
 while($i -lt $tryCount){
 $errorsJobs=New-Object System.Collections.ArrayList
 Start-Sleep -s 5
 Write-Host "starting $i try......."
 $i +=1

  $continuejobs=Get-AzureRmResource -ResourceGroupName $resourceGroup -ResourceName $webAppName -ResourceType Microsoft.web/sites/ContinuousWebJobs -ApiVersion $Apiversion 
foreach($webJob in $continuejobs)
{
if($webJobArr -contains $webJob.Properties.name){
    if($webJob.Properties.status -ne "Running"){
        $errorsJobs.Add($webJob.Properties.name)
    }
}
}
if($errorsJobs.Count -gt 0){
$result=$errorsJobs -join ";"
Write-Host "Some jobs are not Running: $result. Try to check again"
}
else{
Write-Host "All jobs are Running."
break
}
if(($i -eq $tryCount) -and ($errorsJobs.Count -gt 0)){
Write-Error "Some jobs are not Running: $result."
}

 }