322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
;; wait for server=start-last to be three seconds old
;;
(define (server:wait-for-server-start-last-flag areapath)
(let* ((start-flag (conc areapath "/logs/server-start-last")))
(if (file-exists? start-flag)
(let* ((fmodtime (file-modification-time start-flag))
(reftime (+ 2 (random 3)))
(delta (- (current-seconds) fmodtime))
(all-go (> delta reftime)))
(if all-go
#t ;; (system (conc "touch " start-flag)) ;; lazy but safe
(begin
(debug:print-info 0 *default-log-port* "Gating server start, last start: "
fmodtime ", delta: " delta ", reftime: " reftime ", all-go=" all-go)
(thread-sleep! 5)
(server:wait-for-server-start-last-flag areapath))))
#;(system (conc "touch " start-flag)))))
;; kind start up of servers, wait 40 seconds before allowing another server for a given
;; run-id to be launched
;;
(define (server:kind-run areapath)
;; look for $MT_RUN_AREA_HOME/logs/server-start-last
;; and wait for it to be at least 3 seconds old
|
|
|
|
<
<
|
|
>
>
|
>
|
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
|
;; wait for server=start-last to be three seconds old
;;
(define (server:wait-for-server-start-last-flag areapath)
(let* ((start-flag (conc areapath "/logs/server-start-last")))
(if (file-exists? start-flag)
(let* ((fmodtime (file-modification-time start-flag))
(reftime (+ 3 (random 5)))
(delta (- (current-seconds) fmodtime)))
(if (> delta reftime) ;; good enough
(begin
(debug:print-info 0 *default-log-port* "Ready to start server, last start: "
fmodtime ", delta: " delta ", reftime: " reftime)
(system (conc "touch " start-flag))) ;; lazy but safe
(begin
(thread-sleep! 5)
(server:wait-for-server-start-last-flag areapath))))
(system (conc "touch " start-flag)))))
;; kind start up of servers, wait 40 seconds before allowing another server for a given
;; run-id to be launched
;;
(define (server:kind-run areapath)
;; look for $MT_RUN_AREA_HOME/logs/server-start-last
;; and wait for it to be at least 3 seconds old
|