Création d'un travail PowerShell qui exécute une commande SQL toutes les 5 minutes

StackOverflow https://stackoverflow.com/questions/1704594

  •  19-09-2019
  •  | 
  •  

Question

Je crée un script PowerShell que je vais exécuter à l'aide Start-Job. Le travail doit fonctionner en continu en arrière-plan jusqu'à ce que je dis à cesser d'utiliser Stop-Job. Il doit exécuter une commande SQL sur une minuterie avec une durée déterminée et la sortie des résultats au pipeline d'emplois pour que je puisse les récupérer en utilisant Receive-Job.

En ce moment, le travail fonctionne correctement, mais je ne l'ai pas configuré pour continuer à exécuter après l'exécution initiale de commande SQL (je ne l'ai pas mis en œuvre minuterie).

Quelle est la bonne façon de mettre en œuvre une minuterie dans un travail PowerShell pour que le travail fonctionne en continu?

Était-ce utile?

La solution

Alors peut-être pas tout à fait minuterie en tant que telle, je l'ai fait des choses semblables en utilisant simplement une boucle:

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

Vous pouvez modifier davantage le script pour dormir une quantité calculée de temps:

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) }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top