From: Cesar Velez <cesar.velez@equinoxinitiative.org> Date: Thu, 4 Jan 2018 17:56:12 +0000 (-0500) Subject: LP#1739504 - Fire off each ping sequentially X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=b529835718c0572ccd94cb37f2a8b3bd4e7302fe;p=contrib%2FConifer.git LP#1739504 - Fire off each ping sequentially As suggested by berick, tweaking latency tester to sequentially fire off pings. Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Conflicts: Open-ILS/web/js/ui/default/staff/admin/workstation/app.js Signed-off-by: Dan Wells <dbw2@calvin.edu> --- diff --git a/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js b/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js index 20973ffc1d..4ca997dfba 100644 --- a/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js +++ b/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js @@ -937,4 +937,84 @@ function($scope , egCore , ngToast) { }]) +/* + * Home of the Latency tester + * */ +.controller('testsCtrl', ['$scope', '$location', 'egCore', function($scope, $location, egCore) { + $scope.hostname = $location.host(); + + $scope.tests = []; + $scope.clearTestData = function(){ + $scope.tests = []; + numPings = 0; + } + + $scope.isTesting = false; + $scope.avrg = 0; // avrg latency + $scope.canCopyCommand = document.queryCommandSupported('copy'); + var numPings = 0; + // initially fetch first 10 (gets a decent average) + + function calcAverage(){ + + if ($scope.tests.length == 0) return 0; + + if ($scope.tests.length == 1) return $scope.tests[0].l; + + var sum = 0; + angular.forEach($scope.tests, function(t){ + sum += t.l; + }); + + return sum / $scope.tests.length; + } + + function ping(){ + $scope.isTesting = true; + var t = Date.now(); + return egCore.net.request( + "open-ils.pcrud", "opensrf.system.echo", "ping" + ).then(function(resp){ + var t2 = Date.now(); + var latency = t2 - t; + $scope.tests.push({t: new Date(t), l: latency}); + console.log("Start: " + t + " and end: " + t2); + console.log("Latency: " + latency); + console.log(resp); + }).then(function(){ + $scope.avrg = calcAverage(); + numPings++; + $scope.isTesting = false; + }); + } + + $scope.testLatency = function(){ + + if (numPings >= 10){ + ping(); // just ping once after the initial ten + } else { + ping() + .then($scope.testLatency) + .then(function(){ + if (numPings == 9){ + $scope.tests.shift(); // toss first result + $scope.avrg = calcAverage(); + } + }); + } + } + + $scope.copyTests = function(){ + + var lNode = document.querySelector('#pingData'); + var r = document.createRange(); + r.selectNode(lNode); + var sel = window.getSelection(); + sel.removeAllRanges(); + sel.addRange(r); + document.execCommand('copy'); + } + +}]) +