Allow customising the maximum number of processes
This commit is contained in:
parent
96f897cf3b
commit
c229ace8a5
2 changed files with 39 additions and 8 deletions
|
|
@ -30,8 +30,36 @@
|
|||
(setvbuf (current-output-port) 'line)
|
||||
(setvbuf (current-error-port) 'line)
|
||||
|
||||
(with-postgresql-connection
|
||||
"process-jobs"
|
||||
(lambda (conn)
|
||||
(simple-format #t "Ready to process jobs...\n")
|
||||
(process-jobs conn)))
|
||||
(define %options
|
||||
;; Specifications of the command-line options
|
||||
(list (option '("max-processes") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'max-processes
|
||||
(string->number arg)
|
||||
result)))))
|
||||
|
||||
(define %default-options
|
||||
;; Alist of default option values
|
||||
`((max-processes ,default-max-processes)))
|
||||
|
||||
(define (parse-options args)
|
||||
(args-fold
|
||||
args %options
|
||||
(lambda (opt name arg result)
|
||||
(error "unrecognized option" name))
|
||||
(lambda (arg result)
|
||||
(alist-cons
|
||||
'revision-commits
|
||||
(cons arg
|
||||
(or (assoc-ref result 'revision-commits)
|
||||
'()))
|
||||
(alist-delete 'revision-commits result)))
|
||||
%default-options))
|
||||
|
||||
(let ((opts (parse-options (cdr (program-arguments)))))
|
||||
(with-postgresql-connection
|
||||
"process-jobs"
|
||||
(lambda (conn)
|
||||
(simple-format #t "Ready to process jobs...\n")
|
||||
(process-jobs conn
|
||||
#:max-processes (assq-ref opts 'max-processes)))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue