Создание задания PowerShell, которое выполняет команду SQL каждые 5 минут - PullRequest
0 голосов
/ 10 ноября 2009

Я создаю сценарий PowerShell, который я собираюсь выполнить, используя Start-Job. Задание должно непрерывно выполняться в фоновом режиме, пока я не скажу ему прекратить использовать Stop-Job. Он должен выполнить команду SQL на таймере с заданной продолжительностью и вывести результаты в конвейер заданий, чтобы я мог получить их, используя Receive-Job.

В данный момент задание выполняется правильно, но у меня нет настройки для продолжения работы после первоначального выполнения команды SQL (таймер не реализован).

Как правильно реализовать таймер в задании PowerShell, чтобы задание выполнялось непрерывно?

1 Ответ

1 голос
/ 10 ноября 2009

Хотя, может быть, не совсем таймер как таковой, я делал подобные вещи, просто используя цикл:

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

Возможно, вы захотите дополнительно изменить скрипт, чтобы он спал вычисленное количество времени:

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) }
}
...