mirror of
https://github.com/ansible/awx.git
synced 2026-03-03 09:48:51 -03:30
Job detail page refactor
Experimenting with _.throttle to improve event queue processing.
This commit is contained in:
committed by
Luke Sneeringer
parent
4cb7e2301d
commit
cb44949a1d
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log, ClearScope, Breadcrumbs, LoadBreadCrumbs, GetBasePath, Wait, Rest,
|
function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log, ClearScope, Breadcrumbs, LoadBreadCrumbs, GetBasePath, Wait, Rest,
|
||||||
ProcessErrors, ProcessEventQueue, SelectPlay, SelectTask, Socket, GetElapsed, FilterAllByHostName, DrawGraph, LoadHostSummary, ReloadHostSummaryList,
|
ProcessErrors, ProcessEventQueue, SelectPlay, SelectTask, Socket, GetElapsed, FilterAllByHostName, DrawGraph, LoadHostSummary, ReloadHostSummaryList,
|
||||||
JobIsFinished, SetTaskStyles) {
|
JobIsFinished, SetTaskStyles, DigestEvent) {
|
||||||
|
|
||||||
ClearScope();
|
ClearScope();
|
||||||
|
|
||||||
@@ -19,7 +19,8 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
|
|||||||
api_complete = false,
|
api_complete = false,
|
||||||
refresh_count = 0,
|
refresh_count = 0,
|
||||||
lastEventId = 0,
|
lastEventId = 0,
|
||||||
queue = [];
|
queue = [],
|
||||||
|
processEvent;
|
||||||
|
|
||||||
scope.plays = [];
|
scope.plays = [];
|
||||||
scope.playsMap = {};
|
scope.playsMap = {};
|
||||||
@@ -66,24 +67,40 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
|
|||||||
|
|
||||||
event_socket.init();
|
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) {
|
event_socket.on("job_events-" + job_id, function(data) {
|
||||||
data.event = data.event_name;
|
data.event = data.event_name;
|
||||||
if (api_complete && data.id > lastEventId) {
|
if (api_complete && data.id > lastEventId) {
|
||||||
$log.debug('received event: ' + data.id);
|
$log.debug('received event: ' + data.id);
|
||||||
if (queue.length < 20) {
|
queue.unshift(data);
|
||||||
queue.unshift(data);
|
processEvent();
|
||||||
}
|
|
||||||
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 (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) {
|
if ($rootScope.removeJobStatusChange) {
|
||||||
@@ -150,10 +167,10 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
|
|||||||
DrawGraph({ scope: scope, resize: true });
|
DrawGraph({ scope: scope, resize: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
ProcessEventQueue({
|
//ProcessEventQueue({
|
||||||
scope: scope,
|
// scope: scope,
|
||||||
eventQueue: queue
|
// eventQueue: queue
|
||||||
});
|
//});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -967,5 +984,5 @@ function JobDetailController ($rootScope, $scope, $compile, $routeParams, $log,
|
|||||||
|
|
||||||
JobDetailController.$inject = [ '$rootScope', '$scope', '$compile', '$routeParams', '$log', 'ClearScope', 'Breadcrumbs', 'LoadBreadCrumbs', 'GetBasePath',
|
JobDetailController.$inject = [ '$rootScope', '$scope', '$compile', '$routeParams', '$log', 'ClearScope', 'Breadcrumbs', 'LoadBreadCrumbs', 'GetBasePath',
|
||||||
'Wait', 'Rest', 'ProcessErrors', 'ProcessEventQueue', 'SelectPlay', 'SelectTask', 'Socket', 'GetElapsed', 'FilterAllByHostName', 'DrawGraph',
|
'Wait', 'Rest', 'ProcessErrors', 'ProcessEventQueue', 'SelectPlay', 'SelectTask', 'Socket', 'GetElapsed', 'FilterAllByHostName', 'DrawGraph',
|
||||||
'LoadHostSummary', 'ReloadHostSummaryList', 'JobIsFinished', 'SetTaskStyles'
|
'LoadHostSummary', 'ReloadHostSummaryList', 'JobIsFinished', 'SetTaskStyles', 'DigestEvent'
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user