aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-02-28 20:58:21 +0000
committerChristopher Baines <mail@cbaines.net>2020-02-28 20:58:21 +0000
commit65f2f21d3acad30caf490e69c46f0c73e74c324c (patch)
treef67f6b73bc92911665374c7dbbf2fdcbe02088ac /guix-data-service
parent185ba3685379c5f047c0f0804226e4f9c80d6d46 (diff)
downloaddata-service-65f2f21d3acad30caf490e69c46f0c73e74c324c.tar
data-service-65f2f21d3acad30caf490e69c46f0c73e74c324c.tar.gz
Support customising the latest branch revision max processes
This makes it possible to set a higher or lower value depending on what you want.
Diffstat (limited to 'guix-data-service')
-rw-r--r--guix-data-service/jobs.scm26
1 files changed, 15 insertions, 11 deletions
diff --git a/guix-data-service/jobs.scm b/guix-data-service/jobs.scm
index 31440ba..d770d34 100644
--- a/guix-data-service/jobs.scm
+++ b/guix-data-service/jobs.scm
@@ -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)))