Mund
Mund

Reputation: 157

Azure Runbook query running jobs

Azure Powershell runbook, scheduled to run every 1h. The script runs "Invoke-AzVMRunCommand" to call a Powershell script on remote VM locally.

The problem - sometimes it runs longer than 1h and overlaps with next in the schedule, and the second run fails with an error related to "Invoke-AzVMRunCommand" : "Run command extension execution is in progress. Please wait for completion before invoking a run command."

The question - how to query if the runbook job is currently running. We can not change schedule.

thank you!

Upvotes: 0

Views: 1022

Answers (2)

KrishnaG
KrishnaG

Reputation: 3484

You may use Az PowerShell cmdlet Get-AzAutomationJob to check the status of the job. Also, based on that status you may decide to remove or set existing schedule using schedule related cmdlets from here.

Upvotes: 0

Mund
Mund

Reputation: 157

This one does the check:

$jobs = Get-AzAutomationJob -ResourceGroupName $rgName -AutomationAccountName $aaName -RunbookName $runbook

$runningCount = ($jobs | Where-Object { $_.Status -eq "Running" }).count

if (($jobs.status -contains "Running" -And $runningCount -gt 1 ) -Or ($jobs.Status -eq "New"))
{   
    Write-Output "`n This runbook [$runbook] execution is stopped - there is another job currently running. Execution will start as per schedule next hour."
    Exit 1
} 
else
{
    Write-Output "`n Let's proceed with runbook [$runbook] execution - there are no interfering jobs currently running." | Out-File -Filepath StarStop.txt -Append
} #end of check runbook status

Upvotes: 0

Related Questions