summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-05 00:24:59 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-05 00:24:59 +0200
commit8ddd82faf17b5c36f3e9888321bde06160d9eaf1 (patch)
tree2c2aaf116462252ce19281367231478a570d08d2 /app
parent477f2489f2a1e91667f923c9d4681456a8e7a4c4 (diff)
task queuing workingggg
Diffstat (limited to 'app')
-rw-r--r--app/client/dashboard/tasklist.component.js7
-rw-r--r--app/client/modules/samplernn/samplernn.show.js1
-rw-r--r--app/client/queue/queue.reducer.js36
-rw-r--r--app/client/socket/socket.task.js5
-rw-r--r--app/client/util/sort.js4
5 files changed, 35 insertions, 18 deletions
diff --git a/app/client/dashboard/tasklist.component.js b/app/client/dashboard/tasklist.component.js
index 487e73d..49fc3fd 100644
--- a/app/client/dashboard/tasklist.component.js
+++ b/app/client/dashboard/tasklist.component.js
@@ -1,6 +1,7 @@
import { h, Component } from 'preact'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
+import * as util from '../util'
class TaskList extends Component {
constructor(props){
@@ -10,9 +11,6 @@ class TaskList extends Component {
const { title, tasks } = this.props
let time = 0
const taskList = tasks.map(task => {
- console.log(task)
- const eta = (time + (task.epochs) * 180 / 60) + " min."
- time += (task.epochs) * 180 / 60
let dataset_type, dataset_name
if (task.dataset.indexOf('/') !== -1) {
[dataset_type, dataset_name] = task.dataset.split('/')
@@ -23,8 +21,7 @@ class TaskList extends Component {
<div class='row'>
<div class='activity'>{task.activity} {task.module} {dataset_type}</div>
<div class='dataset'>{dataset_name}</div>
- <div class='epochs'>{task.epoch} ep.</div>
- <div class='eta'>{eta}</div>
+ <div className={"age " + util.carbon_date(task.updated_at)}>{util.get_age(task.updated_at)}</div>
</div>
)
})
diff --git a/app/client/modules/samplernn/samplernn.show.js b/app/client/modules/samplernn/samplernn.show.js
index a24d114..64ccd34 100644
--- a/app/client/modules/samplernn/samplernn.show.js
+++ b/app/client/modules/samplernn/samplernn.show.js
@@ -39,6 +39,7 @@ class SampleRNNShow extends Component {
<SampleRNNDatasets
id={this.props.match.params.id || localStorage.getItem('samplernn.last_id')}
folder={folder}
+ history={history}
onPickFile={(file, e) => {
e.preventDefault()
e.stopPropagation()
diff --git a/app/client/queue/queue.reducer.js b/app/client/queue/queue.reducer.js
index 3dc4db3..9a791ce 100644
--- a/app/client/queue/queue.reducer.js
+++ b/app/client/queue/queue.reducer.js
@@ -10,21 +10,11 @@ const queueInitialState = {
completed: [],
}
-const dateSort = util.sort.orderByFn('date desc')
+const dateSort = util.sort.orderByFn('updated_at desc')
const prioritySort = util.sort.orderByFn('priority asc')
const queueReducer = (state = queueInitialState, action) => {
switch(action.type) {
- case types.task.create:
- console.log(action.data)
- return {
- ...state,
- tasks: {
- ...state.tasks,
- [action.data.id]: action.data,
- },
- queue: state.queue.concat([action.data.id]),
- }
case types.task.index:
return {
...state,
@@ -40,6 +30,30 @@ const queueReducer = (state = queueInitialState, action) => {
.sort(prioritySort.sortFn)
.map(pair => pair[1].id),
}
+ case types.task.create:
+ console.log(action.data)
+ return {
+ ...state,
+ tasks: {
+ ...state.tasks,
+ [action.data.id]: action.data,
+ },
+ queue: state.queue.concat([action.data.id]),
+ }
+ case types.task.update:
+ return {
+ ...state,
+ tasks: {
+ ...state.tasks,
+ [action.data.id]: action.data,
+ },
+ }
+ case types.task.task_finish:
+ return {
+ ...state,
+ queue: state.queue.filter(a => a !== action.task.id),
+ completed: [action.task.id].concat(state.completed)
+ }
default:
return state
}
diff --git a/app/client/socket/socket.task.js b/app/client/socket/socket.task.js
index 7c581b8..b33f81a 100644
--- a/app/client/socket/socket.task.js
+++ b/app/client/socket/socket.task.js
@@ -7,6 +7,9 @@ let finishTimeout;
socket.on('task_res', (data) => {
console.log('task response', data)
+ if (data.task) {
+ dispatch({ type: types.task.update, data: data.task })
+ }
switch (data.type) {
case 'start':
// return dispatch({ type: types.system.rpc_connected, runner: data.runner })
@@ -42,11 +45,9 @@ socket.on('task_res', (data) => {
break
case 'progress':
dispatch({ type: types.task.progress, task: data.task })
- dispatch({ type: types.task.update, task: data.task })
break
case 'epoch':
dispatch({ type: types.task.epoch, task: data.task })
- dispatch({ type: types.task.update, task: data.task })
break
case 'task_error':
return console.log('task error', data)
diff --git a/app/client/util/sort.js b/app/client/util/sort.js
index 4c07a96..c5e3a37 100644
--- a/app/client/util/sort.js
+++ b/app/client/util/sort.js
@@ -22,6 +22,10 @@ export const orderByFn = (s='name asc') => {
mapFn = a => [+new Date(a.date || a.created_at), a]
sortFn = numericSort[direction]
break
+ case 'updated_at':
+ mapFn = a => [+new Date(a.updated_at), a]
+ sortFn = numericSort[direction]
+ break
case 'priority':
mapFn = a => [parseInt(a.priority) || parseInt(a.id) || 1000, a]
sortFn = numericSort[direction]