Merge pull request #2493 from overleaf/ta-system-messages-refresh

Refresh System Messages at Regular Interval

GitOrigin-RevId: 39728c89ca61905a2166a90b083834e6b2c61316
This commit is contained in:
Timothée Alby
2020-01-08 04:17:53 +00:00
committed by Copybot
parent 850d5f957c
commit bf05d23793
2 changed files with 22 additions and 53 deletions
@@ -17,17 +17,7 @@ module.exports = SystemMessageManager = {
if (callback == null) {
callback = function(error, messages) {}
}
if (this._cachedMessages != null) {
return callback(null, this._cachedMessages)
} else {
return this.getMessagesFromDB((error, messages) => {
if (error != null) {
return callback(error)
}
this._cachedMessages = messages
return callback(null, messages)
})
}
callback(null, this._cachedMessages)
},
getMessagesFromDB(callback) {
@@ -52,10 +42,15 @@ module.exports = SystemMessageManager = {
return message.save(callback)
},
clearCache() {
return delete this._cachedMessages
refreshCache() {
this.getMessagesFromDB((error, messages) => {
if (!error) {
this._cachedMessages = messages
}
})
}
}
const CACHE_TIMEOUT = 20 * 1000 // 20 seconds
setInterval(() => SystemMessageManager.clearCache(), CACHE_TIMEOUT)
const CACHE_TIMEOUT = 10 * 1000 * (Math.random() + 2) // 20-30 seconds
SystemMessageManager.refreshCache()
setInterval(() => SystemMessageManager.refreshCache(), CACHE_TIMEOUT)