@@ -3,6 +3,7 @@ const { saveParameters } = require('../lib/fileUtils')
33const { info } = require ( '../lib/log' )
44const { defaultEmitters, ignoreWelcomeMessage } = require ( '../config' )
55const cookie = require ( 'cookie' )
6+ const moment = require ( 'moment' )
67
78function subscribe ( experiment , socket ) {
89 return [
@@ -29,6 +30,10 @@ function subscribe(experiment, socket) {
2930function start ( socket ) {
3031 const experiment = engine . createExperiment ( { defaultEmitters } )
3132 experiment . subscriptions = subscribe ( experiment , socket )
33+ experiment . virtualTime . waitUntil ( moment ( ) . endOf ( 'day' ) . valueOf ( ) ) . then ( ( ) => {
34+ info ( 'Experiment finished. Restarting...' )
35+ process . kill ( process . pid , 'SIGUSR2' )
36+ } )
3237 socket . data . experiment = experiment
3338}
3439
@@ -70,9 +75,11 @@ function register(io) {
7075
7176 socket . on ( 'disconnect' , ( reason ) => {
7277 info ( 'Client disconnected' , reason , 'shutting down experiment in 60s' )
78+
7379 clearTimeout ( socket . data . timeout )
7480 socket . data . timeout = setTimeout ( ( ) => {
7581 info ( 'Shutting down experiment' )
82+ process . kill ( process . pid , 'SIGUSR2' )
7683 socket . data . experiment . subscriptions . map ( ( e ) => e . unsubscribe ( ) )
7784 } , 60_000 )
7885 } )
0 commit comments