X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Frequest.js;h=2d50d94e0c26805d2c2298c15b5a0d3132b0eedc;hb=5abeec313f897bbb1f1f39c3849675ec9a77d506;hp=73b17dc8c100daf6c0e974badb7f997cf7629738;hpb=1ab844d8593fa84dfe65cad6b5bbf0e45efd7886;p=github%2FChocobozzz%2FPeerTube.git 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()