From 1eeb2ce59a91397e7ec87f8d75b4aa3436fc73e3 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Wed, 23 Nov 2016 13:49:46 +1300 Subject: [PATCH] syndicate/drivers/config --- racketmq/config.rkt | 37 ----------------------------------- racketmq/hub.rkt | 16 ++++++++------- racketmq/hub/remote-topic.rkt | 8 ++++---- racketmq/hub/subscription.rkt | 12 ++++++------ racketmq/hub/websocket.rkt | 2 +- 5 files changed, 20 insertions(+), 55 deletions(-) delete mode 100644 racketmq/config.rkt diff --git a/racketmq/config.rkt b/racketmq/config.rkt deleted file mode 100644 index 33e05af..0000000 --- a/racketmq/config.rkt +++ /dev/null @@ -1,37 +0,0 @@ -#lang syndicate/actor -;; Server Configuration - -(provide (struct-out config) - spawn-configuration - define/query-config - config-ref) - -(require racket/file) -(require/activate syndicate/drivers/filesystem) - -(struct config (item) #:prefab) - -(define (spawn-configuration path) - (actor #:name (list 'configuration-monitor path) - (during (file-content path file->list $items) - (cond - [(not items) - (log-warning "config ~s is missing" path)] - [else - (log-info "loading config ~s" path) - (for [(item items)] - (log-info "config ~s: ~s" path item) - (assert (config item)))])))) - -(define-syntax define/query-config - (syntax-rules () - [(_ id default) - (define/query-config id id default)] - [(_ id key default) - (define/query-value id default (config (list 'key $val)) val)])) - -(define (config-ref key default) - (react/suspend (k) - (define/query-value actual default (config (list key $val)) val) - (on-start (flush!) - (k (actual))))) diff --git a/racketmq/hub.rkt b/racketmq/hub.rkt index ca8821f..3e7ed20 100644 --- a/racketmq/hub.rkt +++ b/racketmq/hub.rkt @@ -9,7 +9,7 @@ (require/activate syndicate/drivers/timestate) (require/activate syndicate/drivers/web) -(require/activate "config.rkt") +(require/activate syndicate/drivers/config) (require/activate "hub/static-content.rkt") (require/activate "hub/topic-demand.rkt") (require/activate "hub/local-topic.rkt") @@ -22,22 +22,24 @@ #:once-each ["--baseurl" baseurl "Specify the canonical base URL for this hub" (actor #:name (list 'command-line-canonical-baseurl baseurl) - (assert (config (list 'canonical-baseurl baseurl))))] + (assert (config 'command-line (list 'canonical-baseurl baseurl))))] #:multi [("-l" "--listen") host port "Specify one HTTP listener" (actor #:name (list 'command-line-http-listener host port) - (assert (config (list 'http-listener host (string->number port)))))] + (assert (config 'command-line + (list 'http-listener host (string->number port)))))] [("-o" "--option") key vals "Specify a single configuration option" (actor #:name (list 'config-option key vals) - (assert (config (cons (string->symbol key) + (assert (config 'command-line + (cons (string->symbol key) (port->list read (open-input-string vals))))))] [("-f" "--config-file") filename "Specify a configuration file to load" - (spawn-configuration filename)]) + (spawn-configuration filename filename)]) (actor #:name 'main - (during (config (list 'canonical-baseurl $u)) + (during (config _ (list 'canonical-baseurl $u)) (assert (canonical-baseurl u))) (define/query-set canonical-baseurls ($ c (canonical-baseurl _)) c) @@ -49,7 +51,7 @@ ;; TODO: Make the too-many-canonical-baseurl-records situation recoverable. ;; TODO: And/or, make the whole application quit when it gets into a bad state. - (during (config (list 'http-listener $h $p)) + (during (config _ (list 'http-listener $h $p)) (assert (http-listener h p))) (during (http-listener $host-name $port) diff --git a/racketmq/hub/remote-topic.rkt b/racketmq/hub/remote-topic.rkt index aeb724e..1080367 100644 --- a/racketmq/hub/remote-topic.rkt +++ b/racketmq/hub/remote-topic.rkt @@ -6,7 +6,7 @@ (require/activate syndicate/drivers/timestate) (require/activate syndicate/drivers/web) -(require/activate "../config.rkt") +(require/activate syndicate/drivers/config) (require "../private/util.rkt") (require "../protocol.rkt") @@ -64,8 +64,8 @@ (field [last-upstream-check 0] [poll-interval-seconds #f]) - (define/query-config min-poll-interval 60) - (define/query-config max-upstream-redirects 5) + (define/query-config _ min-poll-interval 60) + (define/query-config _ max-upstream-redirects 5) (define/query-set poll-intervals (topic-demand requested-topic $i) i) (begin/dataflow @@ -150,7 +150,7 @@ requested-topic (/ (- (next-subscription-refresh) (current-inexact-milliseconds)) 1000.0)))) - (define/query-config subscription-retry-delay 600) + (define/query-config _ subscription-retry-delay 600) (during (canonical-baseurl $baseurl) (define callback (canonical-url baseurl `("sub" (,sub-id ())))) diff --git a/racketmq/hub/subscription.rkt b/racketmq/hub/subscription.rkt index 87b3e93..f0e7a28 100644 --- a/racketmq/hub/subscription.rkt +++ b/racketmq/hub/subscription.rkt @@ -7,7 +7,7 @@ (require/activate syndicate/drivers/timestate) (require/activate syndicate/drivers/web) -(require/activate "../config.rkt") +(require/activate syndicate/drivers/config) (require "../private/util.rkt") (require "../protocol.rkt") @@ -90,11 +90,11 @@ [message-queue (make-queue)] [dead-letters (make-queue)]) - (define/query-config max-dead-letters 10) - (define/query-config initial-retry-delay 5.0) - (define/query-config max-delivery-retries 10) - (define/query-config retry-delay-multiplier 1.618) - (define/query-config max-retry-delay 30) + (define/query-config _ max-dead-letters 10) + (define/query-config _ initial-retry-delay 5.0) + (define/query-config _ max-delivery-retries 10) + (define/query-config _ retry-delay-multiplier 1.618) + (define/query-config _ max-retry-delay 30) (stop-when (rising-edge (> (queue-length (dead-letters)) (max-dead-letters))) (log-info "Too many dead letters for ~a" callback)) diff --git a/racketmq/hub/websocket.rkt b/racketmq/hub/websocket.rkt index 626e748..2b49c82 100644 --- a/racketmq/hub/websocket.rkt +++ b/racketmq/hub/websocket.rkt @@ -7,7 +7,7 @@ (require json) (require/activate syndicate/drivers/web) -(require/activate "../config.rkt") +(require/activate syndicate/drivers/config) (require "../private/util.rkt") (require "../protocol.rkt")