2017-12-13 7 views
0

誰もwebjobsの停止を検証し、正常に起きたかどうかを確認する方法を教えてください。現在のところ、私はPowerJhellを使ってwebjobsを停止して起動していますが、停止後に検証し、正しく実行されているかどうかを確認する必要があります。この問題についてあなたの考えを共有してください。 VSTS PowerShell Taskを使用してVSTS経由でPowerShellスクリプトを実行しています。それ以外の方法でVSTSからWebジョブを検証する方法を更新してください。連続Webjobsの停止と開始を正しく確認する方法PowerShellで正しく終了したかどうかを確認しますか?

+1

あなたはあなたのためにいくつかのコードを書くために誰かを求めているように見えます。 Stack Overflowは、コード作成サービスではなく、Q&Aサイトです。効果的な質問を書く方法については、こちらをご覧ください(http://stackoverflow.com/help/how-to-ask)。 – Clijsters

+0

こんにちはClijsters、私は私と一緒にスクリプトを持っているが、私は欠陥がどこにあるのか分からない。私はスタックフォーラムにそのスクリプトを投稿したが、誰からも何の応答も得なかった。私はあなたに私の問題について私に助けを頼んでいる。私はこの新しいスレッドを開いた。私がこれを手伝ってくれるなら、私は@ https:// stackoverflowを開いて既存のスレッドを共有する。 com/questions/47694580/webjobs-validation-script-noredirect = 1#comment82376212_47694580ここをクリックして、エラーの原因を教えてください。 – PRAVEEN

+0

あなたが私の問題について私を助けることができれば非常に感謝します。 – PRAVEEN

答えて

0

Webjobを停止するのに数秒かかるので、数秒後に状態を確認できます。

[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." 
} 

} 
+0

私は上記のスクリプトを実行していますが、私のwebjobのいずれかが実行されているときは、次のステップを進めるべきではありません。しかし、上記のスクリプトはすべてのジョブが停止していると言っています。 1つはwebjobsを停止し、もう1つはwebjobsを検証することです。検証がうまくいきません。ここで私を助けてください。私のエラーログ@ https://1drv.ms/f/s!AvMxvVJdKJlVhxr5ZCmTk6WNvZwpを添付してください。確認して助けてください私を出す。 – PRAVEEN

+0

@ starian chen-MSFT、私の4つのwebjobsのうち、2つのwebjobsが実行されていると2つのwebjobsが実行されていないので、私は共有した上記のリンクに従って.Soスクリプトでは失敗する必要があります失敗していません。 – PRAVEEN

+0

別のタスクでwebjobsを検証する必要はありません。一緒に実行してください。それでも他のタスクでそれを検証したい場合は、私の答えの更新をチェックすることができます。どのステータスを検証、実行、停止したいのですか? –

関連する問題