Пост-валидация веб-заданий должна быть запущена, если она еще не запущена

Теперь у меня есть сценарий для запуска веб-заданий и проверки статуса, работает ли он или нет. Если веб-задания не запущены (непрерывно, срабатывает), мне нужно подождать некоторое время, чтобы проверить еще раз, и если они не запущены, мне нужно запустить эти задания, которые не выполняются. Для выполнения этой задачи мне нужен сценарий Power Shell. Может ли кто-нибудь помочь мне в этом?


person PDBR PRAVEEN    schedule 01.11.2017    source источник
comment
Извините, не могли бы вы уточнить, чего вы пытаетесь достичь? Обязательно ли использовать powershell? Не могли бы вы использовать TimerTrigger вместо перезапуска задания? Любая другая полезная информация будет здорово   -  person Thomas    schedule 02.11.2017
comment
Мне просто нужно проверить правильность выполнения всех веб-заданий или ни разу после развертывания веб-приложения в Azure, запустить шаг веб-задания. Обычно я делаю остановку службы веб-приложения, остановку веб-задания, развертывание веб-приложения, запуск веб-задания, запуск службы веб-приложения. После выполнения вышеуказанных шагов мне нужно проверить, все ли веб-задания работают правильно или нет. Вот и все. Мне нужен любой сценарий Power Shell для проверки.   -  person PDBR PRAVEEN    schedule 02.11.2017
comment
Какой плагин доступен в vsts для проверки webjobs   -  person PDBR PRAVEEN    schedule 02.11.2017
comment
Что такое триггер времени, о котором вы упомянули. Это наш плагин или что?   -  person PDBR PRAVEEN    schedule 02.11.2017


Ответы (1)


Если я правильно понимаю, возможно, вы могли бы попробовать следующий сценарий.

$ResourceGroupName=""
$AppService=""
$Apiversion=""
##ContinuousWebJobs
$continuejob=Get-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceName $AppService -ResourceType Microsoft.web/sites/ContinuousWebJobs -ApiVersion $Apiversion 
$status=$continuejob.Properties.status
#$status='Running'
$j=1
while($j -le 5)
{
     if($status -ne 'Running')
     {
        $continuejob=Get-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceName $AppService -ResourceType Microsoft.web/sites/ContinuousWebJobs -ApiVersion $Apiversion 
        $status=$continuejob.Properties.status
        $j+=1 
        "waiting for running, will sleep 6s..."
        sleep 6
     }else{
        Write-Host "already running, exit this script" -BackgroundColor White -ForegroundColor Green
        sleep 6 
        quit
     }
}
Write-Host  "Error:waiting for 30s already, The job is not running" -ForegroundColor Red -BackgroundColor Red

Если ваше задание не выполняется, подождите 6 секунд и повторите попытку.

person Shui shengbao    schedule 02.11.2017
comment
Я еще не тестировал. Я дам вам знать до завтра. Спасибо большое. - person PDBR PRAVEEN; 02.11.2017
comment
Братан, не могли бы вы помочь мне с развертыванием данных таблицы в хранилище таблиц. Я открыл новую тему. Пожалуйста, помогите мне в этом. Ниже приведена ссылка. stackoverflow.com/ вопросы/47091334/ - person PDBR PRAVEEN; 03.11.2017
comment
@PDBRPRAVEEN Извините, я не силен в этом, думаю, служба поддержки Azure вам поможет. - person Shui shengbao; 03.11.2017
comment
Есть ли у вас какие-либо контакты с ними. Я подойду напрямую. - person PDBR PRAVEEN; 03.11.2017
comment
Теперь у меня есть требование, например, если непрерывные задания не находятся в рабочем состоянии, проверив с помощью приведенного выше сценария, даже после проверки в течение 30 секунд, мне нужно завершить этот сценарий или задачу. Так что я узнаю, что задания не выполняются .Мы можем проверить статус в журнале, но если я не выполняю сценарий или задачу, я узнаю, что задания не выполняются. Итак, как мы можем это сделать? Еще одна вещь: после сбоя каждого задания сборки или выпуска VSTS должен инициировать рассылку писем всем членам моей команды. Как я могу это сделать? - person PDBR PRAVEEN; 08.11.2017
comment
@PDBRPRAVEEN Привет, это проблема VSTS. Может быть, вы могли бы задать новый вопрос об этом. - person Shui shengbao; 09.11.2017
comment
По крайней мере, вы можете помочь мне с неудачной частью, если веб-задания не запускаются даже после проверки состояния в течение 30 секунд, мне нужно, чтобы этот скрипт не работал. Как я могу это сделать? - person PDBR PRAVEEN; 09.11.2017
comment
@PDBRPRAVEEN Я обновляю свой ответ, может быть, вы могли бы проверить. Если сценарий работает успешно, он завершит работу сценария, в случае неудачи он распечатает журнал ошибок. - person Shui shengbao; 09.11.2017
comment
Я столкнулся с одной проблемой здесь, предположим, у меня есть 4 непрерывных веб-задания, среди них 2 задания выполняются и 2 задания не выполняются. Я запустил веб-задания, и после этого ваш скрипт проверит, правильно ли запущены веб-задания или нет. случае, 2 из моих веб-заданий требуют времени для запуска. В этом случае ваш скрипт должен проверять статус каждые 6 секунд и не выполнять шаг?. Поскольку выполняются только 2 задания, но ваш скрипт проверяет только первое значение $status, выходит и говорит, что выполняется. Он не принимает статус всех веб-заданий. - person PDBR PRAVEEN; 17.11.2017
comment
Предположим, например, что переменная $status имеет значения, работающие в режиме стоп-стоп. Для 4 непрерывных веб-заданий. Пожалуйста, скажите мне, как решить эту проблему, когда я пробовал этот скрипт, он проверяет только первое значение переменной $status и говорит, что вывод выполняется, хотя 2 задания не работают. - person PDBR PRAVEEN; 17.11.2017
comment
Привет, не могли бы вы использовать разные задачи VSTS для проверки разных заданий? - person Shui shengbao; 20.11.2017
comment
Я вас не понял. Не могли бы вы сказать мне четко. Как я уже говорил, переменная $status содержит статус 4 веб-заданий. После проверки условия в приведенном выше сценарии: if($status -ne 'Выполняется') .. Он проверяет только статус первого веб-задания и не проверяет статус других 3 веб-заданий и входит в цикл, поскольку предполагает, что все веб-задания запущены, но работает только одно веб-задание. Как выполнить эту задачу. Пожалуйста, поделитесь, измените скрипт и поделитесь ко мне. Или скажите мне, какие шаги я буду делать дальше и добавлю задачи. - person PDBR PRAVEEN; 20.11.2017
comment
@PDBRPRAVEEN Извините, я тоже не знаю, как это сделать. Возможно, вы могли бы задать новый вопрос с вашим требованием. Это поможет быстрее решить этот вопрос. :--) - person Shui shengbao; 20.11.2017
comment
Спасибо, Уолтер. Позвольте мне проверить с кем-нибудь. - person PDBR PRAVEEN; 20.11.2017