そのため、オンデマンドで実行するスケジュールされたタスクがあります。
エラーが発生した場合にタスクを強制的に終了させる方法はありますか?
正常に実行されると、ステータスが自動的に更新されないため、手動で更新する必要があります。ただし、呼び出されたプログラムが例外をスローすると、タスクは実行状態のままになります。単に停止して例外をログに記録したいようです。
私のPowerShellスクリプトでは、開発サーバーでWebAPIメソッドを呼び出しています。このような。例外処理は、Web API自体ではなく、Webリクエストを呼び出すスクリプトの問題をキャプチャしようとしているだけであることに注意してください。Webアプリには、独自の例外処理とロギングがあります。
try {
$order_api = "http://dev-server.testserver.com/api/orderpipeline/Runfolder";
$order_response = Invoke-WebRequest -Uri $order_api -UseDefaultCredentials -ContentType "application/json" -Method Post -Body $jsonParams -TimeoutSec 10000;
}
catch{
# Capture exception detail
$err_message = $_.Exception | format-list -force | Out-String;
$log_message = $PSCommandPath + "`r`n" + " Something went wrong trying to invoke web request api, exception follows: " + "`r`n" + $err_message;
# Write to application event log
New-EventLog –LogName Application –Source “Order pipeline Script”
Write-EventLog –LogName Application –Source “Order pipeline Script” –EntryType Error –EventID 1 –Message $log_message
}}
Webアプリ内で例外をログに記録しているので、例外があると、タスクがまだ実行中であることに気付き、強制的に停止する必要がありました。これは、私が本番システムで本当にやりたいことではありません。
呼び出されたプログラムで例外が発生した場合、どうすればタスクを強制的に停止できますか?
私がPowerShellスクリプト内で行っていることの1つは、tryを使用することです。
呼び出されたプログラムで例外が発生した場合、どうすればタスクを強制的に停止できますか?
質問で提供したロジックに基づいて、Catchブロック内にBreakを配置するだけで、例外がスローされたときにスクリプトの実行を停止するように指示できます。
try
{
$order_api = "http://dev-server.testserver.com/api/orderpipeline/Runfolder";
$order_response = Invoke-WebRequest -Uri $order_api -UseDefaultCredentials -ContentType "application/json" -Method Post -Body $jsonParams -TimeoutSec 10000;
}
catch
{
# Capture exception detail
$err_message = $_.Exception | format-list -force | Out-String;
$log_message = $PSCommandPath + "`r`n" + " Something went wrong trying to invoke web request api, exception follows: " + "`r`n" + $err_message;
# Write to application event log
New-EventLog –LogName Application –Source “Order pipeline Script”
Write-EventLog –LogName Application –Source “Order pipeline Script” –EntryType Error –EventID 1 –Message $log_message
break
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加