summaryrefslogtreecommitdiff
path: root/app/relay
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-05-26 21:33:26 +0200
committerJules Laplace <julescarbon@gmail.com>2018-05-26 21:33:26 +0200
commitbe3b2bd56550b71a2ffb7eb1604c1b8c1d2dd4a2 (patch)
treef8b77bcfd10187328b3fadc0de3e1eb6dfa08f8d /app/relay
parent3d836c372d7eff1e2b507888f1ff652a30187c54 (diff)
refactor some task stuff
Diffstat (limited to 'app/relay')
-rw-r--r--app/relay/index.js36
-rw-r--r--app/relay/interpreters.js2
-rw-r--r--app/relay/modules/test.js16
-rw-r--r--app/relay/runner.js22
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){