Job detail page refactor

Experimenting with _.throttle to improve event queue processing.
This commit is contained in:
Chris Houseknecht 2014-06-19 01:09:24 -04:00
parent 29b2b3cecf
commit 8ba6366bc9

View File

@ -9,7 +9,7 @@
function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log, ClearScope, Breadcrumbs, LoadBreadCrumbs, GetBasePath, Wait, Rest,
ProcessErrors, ProcessEventQueue, SelectPlay, SelectTask, Socket, GetElapsed, FilterAllByHostName, DrawGraph, LoadHostSummary, ReloadHostSummaryList,
JobIsFinished, SetTaskStyles) {
JobIsFinished, SetTaskStyles, DigestEvent) {
ClearScope();
@ -19,7 +19,8 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
api_complete = false,
refresh_count = 0,
lastEventId = 0,
queue = [];
queue = [],
processEvent;
scope.plays = [];
scope.playsMap = {};
@ -66,24 +67,40 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
event_socket.init();
processEvent = _.throttle(function() {
var event;
if (queue.length > 0) {
event = queue.pop();
$log.debug('processing event: ' + event.id);
DigestEvent({
scope: scope,
event: event
});
}
}, 200);
event_socket.on("job_events-" + job_id, function(data) {
data.event = data.event_name;
if (api_complete && data.id > lastEventId) {
$log.debug('received event: ' + data.id);
if (queue.length < 20) {
queue.unshift(data);
}
else {
api_complete = false; // stop more events from hitting the queue
$log.debug('queue halted. reloading in 1.');
setTimeout(function() {
$log.debug('reloading');
scope.haltEventQueue = true;
queue = [];
scope.$emit('LoadJob');
}, 1000);
}
queue.unshift(data);
processEvent();
}
//if (queue.length < 20) {
// queue.unshift(data);
//}
//*else {
// api_complete = false; // stop more events from hitting the queue
// $log.debug('queue halted. reloading in 1.');
// setTimeout(function() {
// $log.debug('reloading');
// scope.haltEventQueue = true;
// queue = [];
// scope.$emit('LoadJob');
// }, 1000);
// }
//}
});
if ($rootScope.removeJobStatusChange) {
@ -150,10 +167,10 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
DrawGraph({ scope: scope, resize: true });
}
ProcessEventQueue({
scope: scope,
eventQueue: queue
});
//ProcessEventQueue({
// scope: scope,
// eventQueue: queue
//});
});
@ -967,5 +984,5 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
JobDetailController.$inject = [ '$rootScope', '$scope', '$compile', '$routeParams', '$log', 'ClearScope', 'Breadcrumbs', 'LoadBreadCrumbs', 'GetBasePath',
'Wait', 'Rest', 'ProcessErrors', 'ProcessEventQueue', 'SelectPlay', 'SelectTask', 'Socket', 'GetElapsed', 'FilterAllByHostName', 'DrawGraph',
'LoadHostSummary', 'ReloadHostSummaryList', 'JobIsFinished', 'SetTaskStyles'
'LoadHostSummary', 'ReloadHostSummaryList', 'JobIsFinished', 'SetTaskStyles', 'DigestEvent'
];