Pergunta

Estou criando um script PowerShell que eu estou indo para executar usando Start-Job. O trabalho deve continuamente executado em segundo plano até que eu diga a ele para parar de usar Stop-Job. Ele deve executar um comando SQL em um temporizador com a duração e intensidade especificada os resultados para o gasoduto empregos para que eu possa recuperá-los usando Receive-Job.

Agora o trabalho é executado corretamente, mas eu não tê-lo configurado para continuar a executar após a execução de comandos SQL inicial (eu não tenho o temporizador implementado).

O que é a maneira correta de implementar um temporizador num emprego PowerShell para que o trabalho é executado continuamente?

Foi útil?

Solução

Embora talvez não é um temporizador como tal, tenho feito coisas semelhantes usando apenas um loop:

while ($true) {
  "Hello"
  [System.Threading.Thread]::Sleep(1000)
}

Você pode querer modificar ainda mais o script para dormir uma quantidade calculada de tempo:

while ($true) {
  $start = [DateTime]::Now
  "Hello"
  $end = [DateTime]::Now
  #computer difference from initial five minute marker (5*60*1000=300000)
  $wait = (5*60*1000) - ($end - $start).TotalSeconds
  if ($wait -gt 0) { [System.Threading.Thread]::Sleep($wait) }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top