Hudson выполняет только одну непараллельную работу

У нас есть установка Hudson всего с одним исполнителем. мы хотим достичь точки, когда у нас может быть как минимум 2 исполнителя. Проблема, которая мешает нам сделать это, - это работа, которую нельзя выполнять параллельно.

Пояснение: у нас настроено много веток svn на hudson. Поток для конкретной ветки будет иметь вид

A->B->C

В этом потоке B записывает и удаляет данные из Oracle. у нас хорошо, если на хадсоне будет открыта только одна ветка.

Но у нас много веток svn на Гудзоне. Так что может быть еще одна ветка с потоком

A1->B1-C1

Теперь B и B1 как записывают, так и удаляют данные из единственного экземпляра oracle, запущенного в блоке Hudson, поэтому мы осторожно относимся к ошибкам в данных, которые могут быть использованы тестами. Поэтому мы не хотим иметь 2 исполнителя для hudson, что может привести к одновременной работе B и B1.

Так есть ли решение этой проблемы? Могу ли я настроить Hudson, чтобы не запускать B и B1 параллельно, в противном случае запускать два задания параллельно?

Заранее спасибо


person Vanchinathan Chandrasekaran    schedule 18.02.2011    source источник
comment
Скорее всего, приложения привязаны к схемам (одной или нескольким). Не могли бы вы создать несколько схем в Oracle для использования в разных ветвях?   -  person Jayan    schedule 19.02.2011
comment
Это еще одно решение, но всякий раз, когда мы настраиваем проект на Hudson, мы должны создать новую схему, новую конфигурацию. Это немного больно. Так что я ищу кое-что на Гудзоне.   -  person Vanchinathan Chandrasekaran    schedule 22.02.2011


Ответы (2)


Что вы можете сделать, так это создать подчиненное устройство для каждого отдельного проекта. Вы можете называть их SlaveA, SlaveB и SlaveC. Пусть все они запускаются на одном сервере (главном сервере Hudson) с одним исполнителем.

Теперь для каждой ветки, которая у вас есть для A, A1, A2 .. вы можете создать их только на SlaveA, чтобы принудительно ограничивать потоки между каждым проектом.

person John Vint    schedule 18.02.2011
comment
Можно ли настроить ведомые устройства как подчиненные проекты? Как Slave B начинает после Slave A? Потому что между проектами A- ›B-› C существует зависимость. - person Vanchinathan Chandrasekaran; 24.02.2011
comment
Сами рабы не могут, но работа все еще может. У вас будет проект A1, запускающий B1, который затем запустит B1 на SlaveB. - person John Vint; 24.02.2011

Проверьте плагин Throttle Concurrent Execution. Кажется, это хорошо подходит для вашего варианта использования.

person sti    schedule 26.03.2012