-
Notifications
You must be signed in to change notification settings - Fork 0
/
sys1.js
50 lines (29 loc) · 1.11 KB
/
sys1.js
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
const { spawn } = require('child_process');
const { stdout } = require('process');
const a1 = spawn('a.exe');
let a2=spawn('python', ['msgqueue.py']); //오류방지
let number=9;
a1.stdout.on('data', (data1) => {
try{
a2.stdin.end(data1); //데이터 넣고 이벤트 a2의 stdout이 나오게 함.
setTimeout(()=>{ //이벤트 발생까지의 term을 기다림
a2 = spawn('python', ['msgqueue.py'])
a2.stdout.on('data', (data) => {
console.log(`이게되네...${data}`);
});
a2.stderr.on('data', (data) => {
console.error(data.toString());
});
a2.on('exit', (code) => {
console.log(`Child2 exited with code ${code}`);
});
},1000) // a1에서 a2까지 이벤트 발생 term=1000ms
}catch(err){console.log(`이상`)}
});
a1.stderr.on('data', (data) => {
console.error(data.toString());
});
a1.on('exit', (code) => {
console.log(`Child exited with code ${code}`);
});
setInterval(() => { a1.stdin.write((number++).toString()+'\n') }, 3000) //a1.stdin.end를 쓰면 이벤트가 계속호출됨. 파이썬이 readline이므로 \n 이 필요.