Создание задания PowerShell, выполняющего команду SQL каждые 5 минут.

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

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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) }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top