Câu hỏi Tôi có thể tạo khoảng thời gian bỏ phiếu SCM cho Jenkins ngẫu nhiên không


Trong hầu hết các ví dụ của Jenkins, giá trị thăm dò SCM được chỉ định * / 15 * * * *, tức là. thăm dò ý kiến ​​SCM mỗi 15 phút. Đó là tốt khi bạn có hàng trăm công việc, nhưng không phải nếu bạn có hàng ngàn công việc vì nó dẫn đến hàng nghìn yêu cầu tới máy chủ SCM (Subversion trong trường hợp này) ở 15, 30, 45 và 0 phút qua giờ.

Có cách nào để ngẫu nhiên giá trị bỏ phiếu trong Jenkins để tránh tình huống trên không?

Trên màn hình cấu hình chính Jenkins có một giá trị "Max # của cuộc thăm dò đồng thời." Điều này có nên được thiết lập (và với giá trị nào) để tránh tình huống trên không?


16
2017-08-10 06:42


gốc


Bổ sung trễ liên quan đến vấn đề, không phải là câu hỏi: Jenkins cho phép bạn giới hạn số lượng công nhân bỏ phiếu cho SCM. Điều này sẽ giải quyết vấn đề của bạn mà không cần phải ngẫu nhiên hóa. Xem jenkins-ci.361315.n4.nabble.com/… - Omri Spector


Các câu trả lời:


Sử dụng H thay vì * và Jenkins sẽ phân phối ngẫu nhiên việc bỏ phiếu. Lưu ý rằng hiện tại một cú pháp tốt chưa được tìm thấy cho một tần số khác với một lần mỗi giờ / ngày / etc, vì vậy

H * * * *

sẽ thăm dò ý kiến ​​một lần mỗi giờ tại một phút ngẫu nhiên được xác định trước.

H H * * *

sẽ thăm dò ý kiến ​​một lần mỗi ngày tại một giờ và phút ngẫu nhiên được xác định trước

H H H * *

sẽ thăm dò ý kiến ​​một lần mỗi tuần

0 H * * *

sẽ thăm dò ý kiến ​​trên giờ nhưng một lần mỗi ngày vào một giờ ngẫu nhiên được xác định trước.

Hãy nhớ rằng bạn được phép sử dụng nhiều dòng cron và bất kỳ dòng nào sẽ khớp nhau, vì vậy cho đến khi một cú pháp tốt cho tần số phụ đã được giải quyết, bạn có thể nhận được gần hơn (trung bình) với một cái gì đó như

H * * * *
H * * * *
H * * * *
H * * * *
H * * * *
H * * * *

sẽ cung cấp cho bạn trung bình 15 phút giữa việc bỏ phiếu (có 6 lần bỏ phiếu mỗi giờ, nhưng đó là để có cơ hội tốt là ít nhất một phiếu bầu sẽ rơi vào mỗi giờ quý)

Nếu bạn có đề xuất tốt cho cú pháp phân phối trong vòng một giờ, vui lòng trả lời chủ đề này:

https://groups.google.com/forum/?fromgroups#!jenkinsci-users/VghEjfygWuw/PuIG1o7u1GQJ%5B1-25%5D

Cập nhật (tháng 4 năm 2013)

Jenkins 1.510 và mới hơn bao gồm một cú pháp mới cho phép chỉ định phân phối trong giờ


29
2017-08-10 08:39



+1 cho 1.510 cập nhật. Quá xấu LTS mới nhất là 1.509.1. Hầu như đủ lý do để nâng cấp lên bản phát hành không phải LTS. - Snekse


Nếu bạn đặt tối đa # đồng thời việc bỏ phiếu cho một cái gì đó từ 1 đến 3 thì các yêu cầu bỏ phiếu sẽ đơn giản xếp hàng và được xử lý serially (hoặc nhiều nhất là 3 song song).

Cho rằng tất cả những gì liên quan đến việc bỏ phiếu cho SVN có hiệu quả

svn info branch-url

Họ nên hoàn thành một cách nhanh chóng, nhưng ít nhất bạn sẽ có giới hạn các yêu cầu song song.


2
2017-08-10 06:42





Giải pháp của @Stephen Connolly có thể là một giải pháp tốt cho việc này.

Nếu bạn thực sự có hàng ngàn công việc phải lo lắng, hãy cân nhắc đặt thời gian dựa trên một phần nào đó của tên công việc (Giả sử tên công việc của bạn được phân phối hợp lý).

Ví dụ: nếu công việc của bạn bắt đầu bằng 'B', hãy đặt thời gian thành * / 2. Nếu nó bắt đầu bằng 'C', đặt nó thành * / 3 vv ('A' sẽ cần một cái gì đó khác hơn 1 mặc dù).

Nó không phải là một giải pháp tuyệt vời, nhưng nếu bạn đang thực sự xem xét việc quản lý nhiều công việc, nó có thể là một công việc xung quanh cho đến khi bạn có thể tìm thấy một giải pháp tốt hơn.


1
2017-08-11 02:16



* / 2 sẽ chạy hai lần mỗi giờ, * / 3 sẽ chạy ba lần mỗi giờ ... Tôi nghi ngờ bạn có cú pháp sai đường xung quanh, bạn đang sau - Stephen Connolly
@StephenConnolly Điều đó không chính xác; a * / x chỉ ra rằng sẽ có một khoảng thời gian x đơn vị giữa các công việc. OP có quyền: * / 15 * * * * cứ 15 phút một lần, không phải 15 lần mỗi giờ. - Ed Staub
@edstaub các nguy hiểm của SO trên điện thoại ;-) - Stephen Connolly


H H H * *

Tôi nghĩ rằng ở trên sẽ thăm dò ý kiến ​​một lần mỗi tháng không phải mỗi tuần


0
2017-07-28 08:16