diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-05-26 21:33:26 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-05-26 21:33:26 +0200 |
| commit | be3b2bd56550b71a2ffb7eb1604c1b8c1d2dd4a2 (patch) | |
| tree | f8b77bcfd10187328b3fadc0de3e1eb6dfa08f8d /app/relay | |
| parent | 3d836c372d7eff1e2b507888f1ff652a30187c54 (diff) | |
refactor some task stuff
Diffstat (limited to 'app/relay')
| -rw-r--r-- | app/relay/index.js | 36 | ||||
| -rw-r--r-- | app/relay/interpreters.js | 2 | ||||
| -rw-r--r-- | app/relay/modules/test.js | 16 | ||||
| -rw-r--r-- | app/relay/runner.js | 22 |
4 files changed, 53 insertions, 23 deletions
diff --git a/app/relay/index.js b/app/relay/index.js index 6bb9179..ed59c44 100644 --- a/app/relay/index.js +++ b/app/relay/index.js @@ -41,6 +41,40 @@ remote.on('cmd', (data) => { } }) +remote.on('task', (data) => { + console.log('task:', data.task) + switch(data.cmd) { + case 'start': + break + case 'stop': + break + case 'kill': + break + case 'add': + break + case 'remove': + break + case 'start_queue': + break + case 'stop_queue': + break + case 'list': + break + case 'set_priority': + break + // case 'get_status': + // remote.emit('system_res', { + // type: 'relay_status', + // rpc_connected: rpc_connected, + // runner: runner.status(), + // }) + // break + default: + remote.emit('system_res', { cmd: 'error', error: 'unknown task command' }) + break + } +}) + remote.on('system', (data) => { console.log('system:', data.cmd) switch(data.cmd) { @@ -61,7 +95,7 @@ remote.on('system', (data) => { }) break default: - remote.emit('system_res', { error: 'unknown system command' }) + remote.emit('system_res', { cmd: 'error', error: 'unknown system command' }) break } }) diff --git a/app/relay/interpreters.js b/app/relay/interpreters.js index c276f94..63a2c25 100644 --- a/app/relay/interpreters.js +++ b/app/relay/interpreters.js @@ -8,7 +8,7 @@ export default { gpu: false, }, python: { - cmd: process.env.PYTHON_BIN, + cmd: process.env.PYTHON_BIN || '/usr/bin/python3', gpu: false, }, pytorch: { diff --git a/app/relay/modules/test.js b/app/relay/modules/test.js index bfac514..6c94a0c 100644 --- a/app/relay/modules/test.js +++ b/app/relay/modules/test.js @@ -3,26 +3,18 @@ import path from 'path' const name = 'test' const cwd = process.env.TEST_CWD || './test/module/' -const dataset = { +const cpu = { type: 'perl', script: 'test.pl', params: (task) => { } } -const train = { - type: 'perl', +const gpu = { + type: 'python', script: 'test.pl', params: (task) => { } } -const generate = { - type: 'perl', - script: 'test.pl', -} -const render = { - type: 'perl', - script: 'test.pl', -} const live = { type: 'pytorch', script: 'test.py', @@ -31,6 +23,6 @@ const live = { export default { name, cwd, activities: { - dataset, train, generate, render, live, + cpu, gpu, live, } } diff --git a/app/relay/runner.js b/app/relay/runner.js index c9f4052..9fc2a38 100644 --- a/app/relay/runner.js +++ b/app/relay/runner.js @@ -56,18 +56,21 @@ export function run_system_command(cmd, cb) { case 'w': execFile(cmd, cb) break + case 'df': + execFile('df', ['-h'], cb) + break default: cb({ error: 'no such command' }) break } } -export function run_task(module_name, task){ - const module = modules['module_name'] +export function run_task(task){ + const module = modules[task.module] if (! module) throw new Error("No such module") const { activity, interpreter, params } = build_params(module, task) console.log('running task', activity.name) - console.log(activity.interpreter, params) + console.log(activity.interpreter, activity.script, params) const subprocess = spawn(activity.interpreter, params) if (activity.gpu) { state.current_gpu_task = subprocess @@ -75,18 +78,19 @@ export function run_task(module_name, task){ else { state.current_cpu_task = subprocess } - subprocess.stdout.on('data', data => { - console.log('stdout', subprocess.pid, data) - }) - subprocess.stderr.on('data', data => { - console.log('stderr', subprocess.pid, data) - }) subprocess.on('error', (err) => { console.log('process error', subprocess.pid, err) }) subprocess.on('close', () => { console.log('process ended', subprocess.pid) }) + subprocess.stdout.on('data', data => { + console.log('stdout', subprocess.pid, data) + }) + subprocess.stderr.on('data', data => { + console.log('stderr', subprocess.pid, data) + }) + return subprocess } export function kill_task(subprocess){ |
