observer added, database added to improve fault tolerance, config fixed, ping added, port allocation improved, session observer added, multiple checks added, run process improved, process running check added, fault tolerance improved

This commit is contained in:
C
2023-01-25 17:57:39 +05:00
parent c2bf9dce67
commit e3e2cc97aa
19 changed files with 2475 additions and 1 deletions
+49
View File
@@ -0,0 +1,49 @@
const run_process = require('../modules/run_process')
const database = require('../database/database')
const {is_proc_running, kill_proc} = require('./run_process')
const coordinator = require('./coordinator')
const observer_timeout = 100
const start_observer = () => {
check()
setTimeout(() => start_observer(), observer_timeout)
}
// check sessions in parallel
const check_sessions = async (sessions) => {
await Promise.all(sessions.map(async (session) => {
var webrtc_running = is_proc_running(session.webrtc_pid)
var app_running = is_proc_running(session.app_pid)
if (webrtc_running && app_running) {
return
}
// if something running kill process and skip remove from database
if (!webrtc_running && !app_running) {
var close_session_result = await coordinator.close_session(session.session_id)
if (close_session_result) {
database.remove_running_session(session.session_id)
}
} else {
kill_proc(session.webrtc_pid)
kill_proc(session.app_pid)
}
}))
}
const check = async () => {
var sessions = await database.get_running_sessions()
if (!sessions) {
return
}
check_sessions(sessions)
}
module.exports = {
start_observer
}