Support customising the latest branch revision max processes
This makes it possible to set a higher or lower value depending on what you want.
This commit is contained in:
parent
185ba36853
commit
65f2f21d3a
2 changed files with 24 additions and 12 deletions
|
|
@ -24,7 +24,8 @@
|
|||
|
||||
default-max-processes))
|
||||
|
||||
(define* (process-jobs conn #:key max-processes)
|
||||
(define* (process-jobs conn #:key max-processes
|
||||
latest-branch-revision-max-processes)
|
||||
(define (fetch-new-jobs)
|
||||
(fetch-unlocked-jobs conn))
|
||||
|
||||
|
|
@ -44,7 +45,9 @@
|
|||
(process-jobs-concurrently fetch-new-jobs
|
||||
process-job
|
||||
handle-job-failure
|
||||
#:max-processes max-processes))
|
||||
#:max-processes max-processes
|
||||
#:priority-max-processes
|
||||
latest-branch-revision-max-processes))
|
||||
|
||||
(define default-max-processes
|
||||
(max (round (/ (current-processor-count)
|
||||
|
|
@ -55,12 +58,15 @@
|
|||
(* (* 60 60) ;; 1 hour in seconds
|
||||
24))
|
||||
|
||||
(define* (process-jobs-concurrently fetch-new-jobs
|
||||
process-job
|
||||
handle-job-failure
|
||||
#:key (max-processes
|
||||
default-max-processes)
|
||||
(timeout default-timeout))
|
||||
(define* (process-jobs-concurrently
|
||||
fetch-new-jobs
|
||||
process-job
|
||||
handle-job-failure
|
||||
#:key
|
||||
(max-processes default-max-processes)
|
||||
(priority-max-processes (* 2 max-processes))
|
||||
(timeout default-timeout))
|
||||
|
||||
(define processes
|
||||
(make-hash-table))
|
||||
|
||||
|
|
@ -156,9 +162,7 @@
|
|||
(hash-count (const #t) processes)))
|
||||
(when (< current-processes
|
||||
(if priority?
|
||||
;; For priority jobs, burst up to twice the number
|
||||
;; of max processes
|
||||
(* 2 max-processes)
|
||||
priority-max-processes
|
||||
max-processes))
|
||||
(fork-and-process-job (list job-id))))))
|
||||
jobs)))
|
||||
|
|
|
|||
|
|
@ -35,6 +35,11 @@
|
|||
(list (option '("max-processes") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'max-processes
|
||||
(string->number arg)
|
||||
result)))
|
||||
(option '("latest-branch-revision-max-processes") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'latest-branch-revision-max-processes
|
||||
(string->number arg)
|
||||
result)))))
|
||||
|
||||
|
|
@ -62,4 +67,7 @@
|
|||
(lambda (conn)
|
||||
(simple-format #t "Ready to process jobs...\n")
|
||||
(process-jobs conn
|
||||
#:max-processes (assq-ref opts 'max-processes)))))
|
||||
#:max-processes (assq-ref opts 'max-processes)
|
||||
#:latest-branch-revision-max-processes
|
||||
(or (assq-ref opts 'latest-branch-revision-max-processes)
|
||||
(* 2 (assq-ref opts 'max-processes)))))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue