Sto provando a scrivere un programma Node.js per eseguire e monitorare i programmi javascript. Sto cercando un modo per scoprire se il programma monitorato è ancora "in esecuzione", cioè fare qualcosa di utile.Come scoprire se ci sono ancora eventi registrati nel ciclo degli eventi (bonus: quanti)
Nel mio approccio attuale, quando ricevo il codice da testare, avvio un nuovo processo figlio e mi porto il codice. Gli strumenti del processo figlio il codice crea una sandbox utilizzando Contextify ed esegue il codice utilizzando questa sandbox.
Dopo la chiamata sandbox.run(code)
, so che la parte di blocco del codice è stata completata e può essere mostrata nell'interfaccia utente. Tuttavia, ora non so se il codice abbia registrato qualsiasi timer usando setTimeouts o creato qualsiasi altra fonte di eventi che possa causare l'uscita successiva di parti del codice. Quindi non so se è davvero "finito" ancora.
C'è un modo in Node.js per verificare se ci sono ancora eventi sul ciclo degli eventi da gestire (o anche meglio, quanti ne rimangono)?
Ho trovato this other question, ma si parla solo di come monitorare il ciclo degli eventi per scoprire se le prestazioni del nodo sono ancora valide. Ma non mi interessa la performance (non mi interessa se il codice in esecuzione sta bloccando per 10 secondi o sta facendo qualcosa per 1ms ogni 2 minuti) e non voglio usare strumenti esterni, ma scoprire lo stato di il ciclo degli eventi dal nodo interno stesso. È possibile?