diff options
author | Christopher Baines <mail@cbaines.net> | 2024-03-15 15:54:34 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-03-15 15:54:34 +0000 |
commit | 676713e9d943ad2e912a7faad1b01522f9f7884b (patch) | |
tree | 54b927dfbe6e8c51921dcb2628628b086476c8b6 | |
parent | 75c0cb3c1d9d1327a0c1bba2d5e1cd282780fbbf (diff) | |
download | nar-herder-676713e9d943ad2e912a7faad1b01522f9f7884b.tar nar-herder-676713e9d943ad2e912a7faad1b01522f9f7884b.tar.gz |
Add more TTL options
I'm really not sure about this caching stuff, but these options should
provide the flexibility to change the TTLs the nar-herder advertises
gracefully.
-rw-r--r-- | nar-herder/server.scm | 24 | ||||
-rw-r--r-- | scripts/nar-herder.in | 32 |
2 files changed, 47 insertions, 9 deletions
diff --git a/nar-herder/server.scm b/nar-herder/server.scm index 2c68dad..d84424d 100644 --- a/nar-herder/server.scm +++ b/nar-herder/server.scm @@ -222,7 +222,8 @@ "\n")))) (define* (make-request-handler database storage-root - #:key ttl negative-ttl logger + #:key base-ttl base-cached-compressions-ttl + negative-ttl logger metrics-registry maybe-trigger-creation-of-compressed-nars) (define hostname @@ -797,14 +798,19 @@ (assq-ref opts 'host) ":" (assq-ref opts 'port)) (run-server/patched - (make-request-handler database - canonical-storage - #:ttl (assq-ref opts 'narinfo-ttl) - #:negative-ttl (assq-ref opts 'narinfo-negative-ttl) - #:logger lgr - #:metrics-registry metrics-registry - #:maybe-trigger-creation-of-compressed-nars - maybe-trigger-creation-of-compressed-nars) + (make-request-handler + database + canonical-storage + #:base-ttl (or (assq-ref opts 'narinfo-new-ttl) + (assq-ref opts 'narinfo-ttl)) + #:base-cached-compressions-ttl + (or (assq-ref opts 'new-cached-compressions-narinfo-ttl) + (assq-ref opts 'cached-compressions-narinfo-ttl)) + #:negative-ttl (assq-ref opts 'narinfo-negative-ttl) + #:logger lgr + #:metrics-registry metrics-registry + #:maybe-trigger-creation-of-compressed-nars + maybe-trigger-creation-of-compressed-nars) #:host (assq-ref opts 'host) #:port (assq-ref opts 'port)) diff --git a/scripts/nar-herder.in b/scripts/nar-herder.in index cfa4fe7..e81da92 100644 --- a/scripts/nar-herder.in +++ b/scripts/nar-herder.in @@ -219,6 +219,38 @@ (exit 1)) (alist-cons 'narinfo-ttl (time-second duration) result)))) + (option '("new-ttl") #t #f + (lambda (opt name arg result) + (let ((duration (string->duration arg))) + (unless duration + (simple-format (current-error-port) + "~A: invalid duration\n" + arg) + (exit 1)) + (alist-cons 'new-narinfo-ttl (time-second duration) + result)))) + (option '("cached-compressions-ttl") #t #f + (lambda (opt name arg result) + (let ((duration (string->duration arg))) + (unless duration + (simple-format (current-error-port) + "~A: invalid duration\n" + arg) + (exit 1)) + (alist-cons 'cached-compressions-narinfo-ttl + (time-second duration) + result)))) + (option '("new-cached-compressions-ttl") #t #f + (lambda (opt name arg result) + (let ((duration (string->duration arg))) + (unless duration + (simple-format (current-error-port) + "~A: invalid duration\n" + arg) + (exit 1)) + (alist-cons 'new-cached-compressions-narinfo-ttl + (time-second duration) + result)))) (option '("negative-ttl") #t #f (lambda (opt name arg result) (let ((duration (string->duration arg))) |