2016-03-01 2 views
1

, так что у меня есть Jenkins, работающий с ведомым. Для этого подчиненного есть планировщик, который рассылает задания один раз в день.Jenkins: Только начинайте строить, когда предыдущий закончен

Иногда планировщик не заканчивается через 24 часа, и это нормально. Окружающая среда очень уникальна, и иногда это происходит.

Проблема заключается в том, что планировщик будет назначать задания через 24 часа - независимо от того, что. То, что у меня есть, - это планировщик, все еще работающий на подчиненном устройстве, и тот же планировщик запланирован второй раз и ждет, пока предыдущий не будет выполнен. Добавление вещей к рабу никогда не будет бесплатным.

Что мне нужно - это вариант планирования, который гласит: «Расписание этого планировщика на ведомом устройстве. Если этот планировщик все еще работает на этом подчиненном устройстве - не забудьте, забудьте об этом и посмотрите, как все будет в течение 24 часов».

У кого-нибудь есть решение?

Спасибо за помощь!

PS: Это сервер Windows.

ответ

0

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

$r = Invoke-Webrequest http://host/jenkins/job/PROJECTNAME/lastBuild/api/xml?depth=1 
if ($r.Content -like '*<building>false</building>*') 
{ 
    echo "all go" 
} 
else { 
    throw 'job still running' 
} 

И просто добавить запуск другую работу в случае успеха.

EDIT: Это сценарий с полномочиями. Я предположил, что вы используете окна.

+0

Разве это не требовало бы для каждого планировщика дополнительной работы? PS: Успение было правильным - я использую Windows. – andydotlutz

+0

Да, это так. Но это была бы моя первая идея, как решить вашу проблему. –

Смежные вопросы