MCPcopy Create free account
hub / github.com/easydiffusion/easydiffusion / healthCheck

Function healthCheck

ui/media/js/engine.js:223–275  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

221 let serverState = { status: ServerStates.unavailable, time: Date.now() }
222
223 async function healthCheck() {
224 if (Date.now() < serverState.time + HEALTH_PING_INTERVAL / 2 && isServerAvailable()) {
225 // Ping confirmed online less than half of HEALTH_PING_INTERVAL ago.
226 return true
227 }
228 if (Date.now() >= serverState.time + SERVER_STATE_VALIDITY_DURATION) {
229 console.warn("WARNING! SERVER_STATE_VALIDITY_DURATION has elapsed since the last Ping completed.")
230 }
231 try {
232 let res = undefined
233 if (typeof sessionId !== "undefined") {
234 res = await fetch("/ping?session_id=" + sessionId)
235 } else {
236 res = await fetch("/ping")
237 }
238 serverState = await res.json()
239 if (typeof serverState !== "object" || typeof serverState.status !== "string") {
240 console.error(`Server reply didn't contain a state value.`)
241 serverState = { status: ServerStates.unavailable, time: Date.now() }
242 setServerStatus("error", "offline")
243 return false
244 }
245
246 // Set status
247 switch (serverState.status) {
248 case ServerStates.init:
249 // Wait for init to complete before updating status.
250 break
251 case ServerStates.online:
252 setServerStatus("online", "ready")
253 break
254 case ServerStates.loadingModel:
255 setServerStatus("busy", "loading..")
256 break
257 case ServerStates.rendering:
258 setServerStatus("busy", "rendering..")
259 break
260 default:
261 // Unavailable
262 console.error("Ping received an unexpected server status. Status: %s", serverState.status)
263 setServerStatus("error", serverState.status.toLowerCase())
264 break
265 }
266 serverState.time = Date.now()
267 await eventSource.fireEvent(EVENT_PING, serverState)
268 return true
269 } catch (e) {
270 console.error(e)
271 serverState = { status: ServerStates.unavailable, time: Date.now() }
272 setServerStatus("error", "offline")
273 }
274 return false
275 }
276
277 function isServerAvailable() {
278 if (typeof serverState !== "object") {

Callers 2

waitUntilFunction · 0.85
engine.jsFile · 0.85

Calls 4

isServerAvailableFunction · 0.85
fireEventMethod · 0.80
setServerStatusFunction · 0.70
jsonMethod · 0.45

Tested by

no test coverage detected