diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-05 00:24:59 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-05 00:24:59 +0200 |
| commit | 8ddd82faf17b5c36f3e9888321bde06160d9eaf1 (patch) | |
| tree | 2c2aaf116462252ce19281367231478a570d08d2 /app | |
| parent | 477f2489f2a1e91667f923c9d4681456a8e7a4c4 (diff) | |
task queuing workingggg
Diffstat (limited to 'app')
| -rw-r--r-- | app/client/dashboard/tasklist.component.js | 7 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.show.js | 1 | ||||
| -rw-r--r-- | app/client/queue/queue.reducer.js | 36 | ||||
| -rw-r--r-- | app/client/socket/socket.task.js | 5 | ||||
| -rw-r--r-- | app/client/util/sort.js | 4 |
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] |
