diff options
author | kimdahey <claire_kim1@brown.edu> | 2019-12-03 16:32:13 -0500 |
---|---|---|
committer | kimdahey <claire_kim1@brown.edu> | 2019-12-03 16:32:13 -0500 |
commit | 70583fa47bd9920d1823d381708c81283534d6ce (patch) | |
tree | 5c81976813436852403ea352797efe1d518dbb1a /src/client/util/ClientDiagnostics.ts | |
parent | 56b83d89f37a5523ab319977e3385f539ecaf996 (diff) | |
parent | 213962406327cc2f7267064f3016fabf0fd16872 (diff) |
merged w master
Diffstat (limited to 'src/client/util/ClientDiagnostics.ts')
-rw-r--r-- | src/client/util/ClientDiagnostics.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/client/util/ClientDiagnostics.ts b/src/client/util/ClientDiagnostics.ts new file mode 100644 index 000000000..0a213aa1c --- /dev/null +++ b/src/client/util/ClientDiagnostics.ts @@ -0,0 +1,34 @@ +export namespace ClientDiagnostics { + + export async function start() { + + let serverPolls = 0; + const serverHandle = setInterval(async () => { + if (++serverPolls === 20) { + alert("Your connection to the server has been terminated."); + clearInterval(serverHandle); + } + await fetch("/serverHeartbeat"); + serverPolls--; + }, 1000 * 15); + + let executed = false; + let solrHandle: NodeJS.Timeout | undefined; + const handler = async () => { + const response = await fetch("/solrHeartbeat"); + if (!(await response.json()).running) { + if (!executed) { + alert("Looks like SOLR is not running on your machine."); + executed = true; + solrHandle && clearInterval(solrHandle); + } + } + }; + await handler(); + if (!executed) { + solrHandle = setInterval(handler, 1000 * 15); + } + + } + +}
\ No newline at end of file |