Есть ли способ эмулировать блокировку чтения-записи для Jenkins Pipeline Jobs? - PullRequest
1 голос
/ 07 марта 2019

У меня есть неустановленное количество заданий, которые используют ресурс A в режиме «чтения». Все эти задания могут выполняться одновременно просто отлично.

У меня также есть задание, которое «записывает» в A. Это задание не может выполняться параллельно с заданиями «reader».

Как бы я решил эту проблему для Jenkins Pipelines? Есть ли способ реализовать простую «блокировку чтения-записи»? Похоже, lock() может использоваться только для реализации эксклюзивной блокировки.

1 Ответ

1 голос
/ 07 марта 2019

Существует способ создать несколько ресурсов с меткой, например «mylabel» (столько читателей, сколько у вас есть).Я полагаю, что параметр количества плохо документирован .

Блокировка считывателя

lock(label: 'mylabel', quantity: 1) {
    ...

Блокировка записывающего устройства - нет количества - так что это значение по умолчанию, требующее все

lock(label: 'mylabel') {
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...