Overview
Comment: | Added better but still too slow startup of server when prev-running server is stuck |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.60 |
Files: | files | file ages | folders |
SHA1: |
acfb29f22e47a309dcdab01408d08bc4 |
User & Date: | mrwellan on 2014-03-10 16:18:35 |
Other Links: | branch diff | manifest | tags |
Context
2014-03-11
| ||
22:20 | Merged v1.60-no-compile into v1.60 check-in: 47cf920bfd user: matt tags: v1.60 | |
12:15 | Partial migration of server-dat to vector check-in: 8df45e5eed user: matt tags: v1.60-no-compile | |
2014-03-10
| ||
16:18 | Added better but still too slow startup of server when prev-running server is stuck check-in: acfb29f22e user: mrwellan tags: v1.60 | |
00:34 | Fixed rmt:test-get-logfile-info issue, typo in api. check-in: d4cdee770d user: matt tags: v1.60 | |
Changes
Modified http-transport.scm from [7a89e82f89] to [cda5622689].
︙ | ︙ | |||
218 219 220 221 222 223 224 | (define (http-transport:inc-requests-and-prep-to-close-all-connections) (mutex-lock! *http-mutex*) (set! *http-requests-in-progress* (+ 1 *http-requests-in-progress*))) ;; Send "cmd" with json payload "params" to serverdat and receive result ;; | | | > > | > > | | | | 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | (define (http-transport:inc-requests-and-prep-to-close-all-connections) (mutex-lock! *http-mutex*) (set! *http-requests-in-progress* (+ 1 *http-requests-in-progress*))) ;; Send "cmd" with json payload "params" to serverdat and receive result ;; (define (http-transport:client-api-send-receive run-id serverdat cmd params #!key (numretries 3)) (let* ((fullurl (if (list? serverdat) (list-ref serverdat 4) ;; (cadddr serverdat) ;; this is the uri for /api (begin (debug:print 0 "FATAL ERROR: http-transport:client-api-send-receive called with no server info") (exit 1)))) (res #f)) (handle-exceptions exn (if (> numretries 0) (begin (mutex-unlock! *http-mutex*) (thread-sleep! 2) (close-all-connections!) (debug:print 0 "WARNING: Failed to communicate with server, trying again, numretries left: " numretries) (http-transport:client-api-send-receive run-id serverdat cmd params numretries: (- numretries 1))) (begin (mutex-unlock! *http-mutex*) #f)) (begin (debug:print-info 11 "fullurl=" fullurl ", cmd=" cmd ", params=" params ", run-id=" run-id "\n") ;; set up the http-client here (max-retry-attempts 1) ;; consider all requests indempotent (retry-request? (lambda (request) #f)) ;; send the data and get the response ;; extract the needed info from the http data and ;; process and return it. (let* ((send-recieve (lambda () (mutex-lock! *http-mutex*) (set! res (with-input-from-request ;; was dat fullurl |
︙ | ︙ |
Modified rmt.scm from [834deede3a] to [33f581f7a5].
︙ | ︙ | |||
60 61 62 63 64 65 66 | (let ((new-connection-info (client:setup run-id))) (debug:print 0 "WARNING: Communication failed, trying call to http-transport:client-api-send-receive again.") (rmt:send-receive cmd run-id params))))) (define (rmt:send-receive-no-auto-client-setup connection-info cmd run-id params) (let* ((run-id (if run-id run-id 0)) (jparams (db:obj->string params)) ;; (rmt:dat->json-str params)) | | | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | (let ((new-connection-info (client:setup run-id))) (debug:print 0 "WARNING: Communication failed, trying call to http-transport:client-api-send-receive again.") (rmt:send-receive cmd run-id params))))) (define (rmt:send-receive-no-auto-client-setup connection-info cmd run-id params) (let* ((run-id (if run-id run-id 0)) (jparams (db:obj->string params)) ;; (rmt:dat->json-str params)) (res (http-transport:client-api-send-receive run-id connection-info cmd jparams))) (if res (db:string->obj res) ;; (rmt:json-str->dat res) ;; this one does NOT keep trying res))) ;; Wrap json library for strings (why the ports crap in the first place?) (define (rmt:dat->json-str dat) |
︙ | ︙ |