From 5abeec313f897bbb1f1f39c3849675ec9a77d506 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sat, 1 Oct 2016 15:33:27 +0200 Subject: Server: fix remaining milli seconds before the next requests feature --- server/models/request.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'server/models') diff --git a/server/models/request.js b/server/models/request.js index 73b17dc8c..2d50d94e0 100644 --- a/server/models/request.js +++ b/server/models/request.js @@ -14,6 +14,7 @@ const Pod = mongoose.model('Pod') const Video = mongoose.model('Video') let timer = null +let lastRequestTimestamp = 0 // --------------------------------------------------------------------------- @@ -27,7 +28,8 @@ RequestSchema.statics = { deactivate, flush, forceSend, - list + list, + remainingMilliSeconds } RequestSchema.pre('save', function (next) { @@ -54,12 +56,19 @@ mongoose.model('Request', RequestSchema) function activate () { logger.info('Requests scheduler activated.') - timer = setInterval(makeRequests.bind(this), constants.REQUESTS_INTERVAL) + lastRequestTimestamp = Date.now() + + const self = this + timer = setInterval(function () { + lastRequestTimestamp = Date.now() + makeRequests.call(self) + }, constants.REQUESTS_INTERVAL) } function deactivate () { logger.info('Requests scheduler deactivated.') clearInterval(timer) + timer = null } function flush () { @@ -77,6 +86,12 @@ function list (callback) { this.find({ }, callback) } +function remainingMilliSeconds () { + if (timer === null) return -1 + + return constants.REQUESTS_INTERVAL - (Date.now() - lastRequestTimestamp) +} + // --------------------------------------------------------------------------- // Make a requests to friends of a certain type @@ -159,7 +174,7 @@ function makeRequests () { return callbackEach() } - // Maybe the pod is not our friend anymore so simply remove them + // Maybe the pod is not our friend anymore so simply remove it if (!toPod) { removePodOf.call(self, requestToMake.ids, toPodId) return callbackEach() -- cgit v1.2.3