2012-06-22 29 views
7

Tôi có 4 nút và 2 công việc. Bất kỳ nút nào cũng có thể chạy 2 công việc đồng thời và bất kỳ công việc nào cũng có thể được thực thi đồng thời. Tôi muốn có thể hạn chế chạy cùng một công việc đồng thời trên cùng một máy. Ví dụ:Jenkins không cho phép cùng một công việc chạy đồng thời trên cùng một nút?

Jobs: J1 và J2 nút: N1, N2, N3 và N4

tôi có thể chạy J1 và J2 trên cùng một nút cùng một lúc. Tôi có thể chạy J1 trên N1 và N3 cùng một lúc. NHƯNG Tôi không muốn chạy J1 và một bản dựng J1 khác trên cùng một nút cùng một lúc.

Tôi đã thử "Khóa và chốt", "Trình cắm độc quyền của Jenkins", plugin "Loại trừ trình cắm", và chúng sẽ hoạt động tốt khi cố gắng phối hợp các công việc khác nhau. Nhưng trường hợp của tôi đang cố gắng quản lý các trường hợp xây dựng khác nhau của cùng một công việc.

+0

Bạn quên đề cập đến bạn đang sử dụng plugin của Throttle ' ... – Gonen

Trả lời

2

Thời gian qua tôi đã kiểm tra, chỉ có một đơn thể hiện của từng công việc có thể chạy tại một thời điểm duy nhất, ví dụ:

Nếu bạn nhấn [xây dựng] phím này hai lần, trường hợp đầu tiên của công việc sẽ được thực hiện, và chỉ sau khi nó được hoàn thành - kế tiếp sẽ bắt đầu.

Bạn có thực sự có thể chạy Job1-Build1 và J1-Build2 cùng một lúc không?

+1

Gonen, cảm ơn bạn đã trả lời. Có, tôi có thể chạy J1-Build1 và J1-Build2 cùng một lúc. Trong thực tế tất cả các công việc sẽ chạy đồng thời mà không có bất kỳ vấn đề. Yêu cầu của tôi là ngăn chặn cùng một công việc (tức là J1) chạy trên cùng một nút: Tôi muốn ngăn chặn kiểu kịch bản này: Chạy J1-Node1 và một thể hiện khác của J1-node1. yêu cầu của tôi: Trong khi một thể hiện của J1 đã chạy trên Node1 (tức là J1-Node1), Bắt đầu ví dụ mới của J1 trên một nút khác (tức là J1-Node2) và không trên Node1. Nếu Nod2 cũng đang chạy một thể hiện của J1, sau đó chờ đợi! Cảm ơn Marek –

+0

Marek, bạn có thể đi đến cực khác, ngăn chặn * bất kỳ * thể hiện của J1 từ bắt đầu cho đến khi tất cả các kết thúc khác, do đó J1-build2 sẽ không bắt đầu cho đến khi J1-build1 được thực hiện. Nên sử dụng tùy chọn '** Xây dựng khối khi hạ lưu dự án đang xây dựng **' (trong phần * Tùy chọn dự án nâng cao *). – Gonen

12

Hãy thử Throttle Concurrent Builds Plugin. Nó cho phép throtte số lượng xây dựng đồng thời của một dự án chạy trên mỗi nút hoặc trên toàn cầu. Trong trường hợp của bạn, bạn nên đặt:

  • Maximum Tổng Concurrent Xây dựng: 0 (= không giới hạn)
  • tối đa đồng thời xây dựng mỗi Node: 1
+6

Cảm ơn bạn đã chỉ định rằng 0 = không giới hạn! Tôi đã đập đầu mình tự hỏi tại sao chỉ định 0 là tổng số bản dựng đồng thời tối đa vẫn dẫn đến các bản dựng đồng thời, tức là nghĩ rằng 0 = 0. :) – linguinee

Các vấn đề liên quan