2014-09-22 2 views
6

Un progetto che ho realizzato con Meteor ha una perdita di memoria che si accumula lentamente nel corso di un mese o due. Dopo aver affondato i giorni per trovare la perdita, sto gettando la spugna in favore di aggiungere solo un riavvio automatico che si verifica una volta al mese. Sì, questa è una cattiva pratica, ecc.Come riavviare il server Meteor da Meteor.js

C'è un modo per riavviare semplicemente dall'interno della codebase del server? Idealmente, ciò innescherà anche un aggiornamento per i client connessi (simile agli aggiornamenti regolari della distribuzione).

Quindi presumo che questo comando possa essere annidato in una buona vecchia funzione di timeout JS.

+2

penso che semplice 'process.exit()' dovrebbe fare il lavoro, dal momento che la vostra applicazione sarà probabilmente eseguito in un ambiente con funzione di riavvio automatico in ogni modo. –

+1

Hai provato a utilizzare https://kadira.io/ per trovare il problema? – zeroasterisk

risposta

3

La risposta fornita da apendua ha funzionato. Si tratta di un trucco totale e non consigliato per la maggior parte dei casi, ma ottimo per perdite di memoria a lungo termine.

mettere questo all'interno del vostro script di avvio:

var restartFrequency = 1000 * 60 * 24; // 1 day (1000 millsec * 60 min * 24 hour) 
setTimeout(function(){ 
    process.exit(); 
}, restartFrequency); 
+0

1000 ms == 1 secondo. la tua corrispondenza dovrebbe essere '1000 * 60 * 60 * 24' => 1s * 60 (== 1 min) * 60 (== 1 ora) * 24 (== 1 giorno) – rkstar