70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
(or (args:get-arg "-transport")
(configf:lookup *configdat* "server" "transport")
"http"))))
(set! *transport-type* ttype)
ttype))
;; Get the transport -- DO NOT call this from client code. In client code, this is run-id sensitive and not a global
(define (server:get-transport)
(if *transport-type*
*transport-type*
(server:set-transport)))
;; Generate a unique signature for this server
(define (server:mk-signature)
|
|
|
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
(or (args:get-arg "-transport")
(configf:lookup *configdat* "server" "transport")
"http"))))
(set! *transport-type* ttype)
ttype))
;; Get the transport -- DO NOT call this from client code. In client code, this is run-id sensitive and not a global
;; For code communicating with existing run-id with a server, use: (rmt:run-id->transport-type run-id)
(define (server:get-transport)
(if *transport-type*
*transport-type*
(server:set-transport)))
;; Generate a unique signature for this server
(define (server:mk-signature)
|
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
(trycount 0))
(if server
;; note: client:start will set *runremote*. this needs to be changed
;; also, client:start will login to the server, also need to change that.
;;
;; client:start returns #t if login was successful.
;;
(let ((res (case *transport-type*
((http)(server:ping-server run-id
(tasks:hostinfo-get-interface server)
(tasks:hostinfo-get-port server)))
;; ((nmsg)(nmsg-transport:ping (tasks:hostinfo-get-interface server)
;; (tasks:hostinfo-get-port server)
;; timeout: 2))
)))
;; if the server didn't respond we must remove the record
(if res
#t
(begin
(debug:print-info 0 *default-log-port* "server at " server " not responding, removing record")
(tasks:server-force-clean-running-records-for-run-id (db:delay-if-busy tdbdat) run-id
" server:check-if-running")
|
>
|
|
|
|
>
|
|
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
|
(trycount 0))
(if server
;; note: client:start will set *runremote*. this needs to be changed
;; also, client:start will login to the server, also need to change that.
;;
;; client:start returns #t if login was successful.
;;
(let* ((transport-type (rmt:run-id->transport-type run-id))
(res (case transport-type
((http)(server:ping-server run-id
(tasks:hostinfo-get-interface server)
(tasks:hostinfo-get-port server)))
(else
(debug:print-error 0 *default-log-port* "(5) Transport [" transport-type
"] specified for run-id [" run-id
"] is not implemented in rmt:send-receive. Cannot proceed.")
(exit 1)))))
;; if the server didn't respond we must remove the record
(if res
#t
(begin
(debug:print-info 0 *default-log-port* "server at " server " not responding, removing record")
(tasks:server-force-clean-running-records-for-run-id (db:delay-if-busy tdbdat) run-id
" server:check-if-running")
|