2013-03-29 4 views
3

У нас есть несколько заданий, которые запускают наше приложение на разных схемах БД.
Теперь каждое задание использует свою собственную схему БД.
Теперь это очень удобно.
Если одно и то же задание запускается несколько раз, то эти сборки будут выполняться один за другим, а не параллельно, потому что они используют одну и ту же схему БД.
Возможно ли управлять списком схемы БД в Дженкинсе?
Если какая-либо схема не используется в настоящее время ни одним заданием, то новая работа может начать использовать эту бесплатную схему.
Есть ли какой-нибудь плагин, который позволяет это делать?Как управлять общими ресурсами между заданиями в Дженкинсе/Хадсоне?

+0

Какова продолжительность ваших рабочих мест? – plsgogame

+0

Разное. 5-10 минут, 1 час, .. –

+0

Это интересный вопрос. Вы когда-нибудь находили решение для этого? – mmalmeida

ответ

0

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

  1. Проверка доступных БД (может использовать db.txt файл с именами дб)
  2. Получить имя бесплатно DB и поместить это имя конфигурации файл приложения или конфигурации задания.
  3. Отметьте в файле db.txt, что эта БД «недоступна».
  4. После окончания работы установите эту базу данных.

Если вы запустили вторую работу параллельно с списком проверки скрипта db и поместили второй db, потому что первая БД была с отметкой «недоступна».

Если я не понимаю ваш вопрос, пожалуйста, простите меня.

+0

Я не могу создать только одно задание. Должна быть возможность запускать задания отдельно. И я знаю, что можно создать собственный инструмент/сценарий управления БД. Но для Дженкинса есть много плагинов. Возможно, есть тот, который может решить нашу проблему :) –

+0

Вам не нужно создавать только одно задание, вы можете использовать этот скрипт для многих заданий. И этот скрипт не будет сложным. – plsgogame

+0

Будет сложным. Как проверить, что БД не используется? Задание может быть остановлено вручную или может быть сбой по какой-либо причине. И в этом случае работа не будет уведомлять, что БД является бесплатным. –

0

Попробуйте использовать Jenkins Exclusion Plugin. Вам нужно будет определить каждый БД в качестве отдельного Ресурса и установить каждое задание для контроля правильного ресурса (ов).

Мы используем его для очень похожей ситуации между несколькими заданиями.

+0

Я не понимаю, как его использовать. Задание может использовать db1 или db2 или db3 или ... Но если работа начала использовать db1, тогда другие задания должны иметь возможность использовать db2 и db3. Как настроить плагин для такой ситуации? –

+0

Я думаю, что неправильно понял ваш первоначальный вопрос. Похоже, что вы действительно хотите, чтобы Дженкинс назначил БД заданию во время выполнения из пула БД. Это верно? Если да, то это не поможет. – jwernerny

+0

Не только DB. Назначьте некоторый ресурс в начале задания и верните этот ресурс в пул, если задание закончено или остановлено пользователем. –

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