2014-10-22 6 views
0

Это не шаблон производителя-потребителя, но это достаточно близко, чтобы описать мою проблему.Модель производителя-потребителя в муравьином

У меня есть список предметов, которые нужно потреблять N процессами. Я хотел бы выделить номер процесса для элемента, как только он станет бесплатным, а не жестко запрограммировать его.

Например, чтобы запустить тест, можно было бы назвать:

<runTest target="t1"> 
    <property name="instance" value="i1" /> 
</runTest> 

Если бы я имел i1 к i3 в руке, и t1 к t10 тестов, чтобы бежать, я мог бы сделать:

<parallel> 
    <runTest target="t1"> 
     <property name="instance" value="i1" /> 
    </runTest> 
    <runTest target="t2"> 
     <property name="instance" value="i2" /> 
    </runTest> 
    <runTest target="t3"> 
     <property name="instance" value="i3" /> 
    </runTest> 
<parallel> 

Я бы подождал, пока это закончится и запустит то же самое с разными целями. Я мог бы зацикливать весь этот код, чтобы уменьшить утомительность. Но возможно ли подобрать цель и предоставить ее экземпляру, как только это будет сделано с предыдущей целью?

ответ

0

Поскольку parallel задачи и for задачи слишком примитивны, чтобы справиться с этим типом требования, если один является Хеллбент на использовании Ant, на мой взгляд, новая муравей задача (учебник here) должен быть написан для обработки такого поведения.

Я также понял, что мы могли бы использовать задачу «script», чтобы написать короткую часть кода, например Ruby или Javascript, для достижения той же цели.

0

Возможно, эту проблему легче решить за пределами ANT?

Я бы рекомендовал посмотреть на автоматический механизм сборки, такой как Дженкинс. Он имеет возможность делегировать задания на сборку в пул рабочих процессов, выполняемых локально или на «подчиненных» узлах. Дженкинс также имеет ряд плагинов рабочего процесса, которые позволяют запускать задания на основе успеха или неудачи других заданий. Вот как реализованы непрерывные интеграционные/поточные конвейеры.

Надеюсь, что это поможет.

+0

Я согласен, я уже решил это за пределами муравья, но из-за технических ограничений меня вынуждают реализовать это в самом Ant. – Vegetto

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