SQL Server создайте задачу с помощью xp_cmdshell и установите, если задача не удалась, перезапускайте каждый раз
Я знаю, как создать задачу в SQL Server 2008 по запросу, но я не могу настроить это "если задача не выполняется, перезапускать каждый раз" и как отключить "остановить задачу, если она выполняется дольше" .
Это мой код
declare @cmd varchar(max), @Path varchar(max), @FileToExecute varchar(max)
set @Path = 'C:\MyAppFolder'
set @FileToExecute = 'MyApp.exe'
set @cmd = 'schtasks /create /tn "DataTask" /tr "'''+@Path+'\'+@FileToExecute +'''" /sc onstart /RU Administrator /RP password /F /delay 0015:00'
exec xp_cmdshell @cmd , NO_OUTPUT
set @cmd = 'schtasks /run /TN "DataTask"'
exec xp_cmdshell @cmd
2 ответа
Решение
Я не думаю, что можно сделать все это из командной строки.. это все, что вы можете сделать
https://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs.85).aspx
но... вы могли бы сделать файл XML, экспортировав существующую работу:
schtasks /create /xml "MyExportFile.xml" /tn "Name of the New Task"
и настройте параметры следующим образом:
<Settings>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<StartWhenAvailable>true</StartWhenAvailable>
<RestartOnFailure>
<Interval>PT30M</Interval>
<Count>5</Count>
</RestartOnFailure>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
</Settings>
И вы можете использовать их в качестве шаблона для импорта из командной строки
Я просто делаю изменения в своей задаче, и после этого я экспортировал ее в XML-файл, чтобы создать новую задачу из XML с включенными изменениями.
Это сработало для моего
declare @cmd varchar(max), @Path varchar(max), @FileToExecute varchar(max), @XmlFile varchar(100)
set @Path = 'C:\MyAppFolder'
set @FileToExecute = 'MyApp.exe'
set @XmlFile = 'MyApp.xml'
set @cmd = 'schtasks /create /tn "DataTask" /tr "'+@Path+'\'+@XmlFile+'" /RU Administrator /RP password'
exec xp_cmdshell @cmd , NO_OUTPUT
set @cmd = 'schtasks /run /TN "DataTask"'
exec xp_cmdshell @cmd