summaryrefslogtreecommitdiff
path: root/src/daemons/notes-stats.ts
blob: bddb54cfa56aeb93c4ca54a8c37d3359993079ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import * as childProcess from 'child_process';
import * as Deque from 'double-ended-queue';
import Xev from 'xev';

const ev = new Xev();

export default function() {
	const log = new Deque<any>();

	const p = childProcess.fork(__dirname + '/notes-stats-child.js');

	p.on('message', stats => {
		ev.emit('notesStats', stats);
		log.push(stats);
		if (log.length > 100) log.shift();
	});

	ev.on('requestNotesStatsLog', id => {
		ev.emit(`notesStatsLog:${id}`, log.toArray());
	});

	process.on('exit', code => {
		process.kill(p.pid);
	});

}