Only update online count every minute for shields

pull/6565/head
Alex Brazier 9 years ago
parent 6555fe42cf
commit 00b8f16ebc
  1. 10
      packages/rocketchat-api/server/v1/misc.js

@ -32,6 +32,9 @@ RocketChat.API.v1.addRoute('me', { authRequired: true }, {
}
});
let onlineCache = 0;
let onlineCacheDate = 0;
const cacheInvalid = 60000; // 1 minute
RocketChat.API.v1.addRoute('shield.svg', { authRequired: false }, {
get() {
const { type, channel, name, icon } = this.queryParams;
@ -49,8 +52,11 @@ RocketChat.API.v1.addRoute('shield.svg', { authRequired: false }, {
let text;
switch (type) {
case 'online':
const count = RocketChat.models.Users.findUsersNotOffline().count();
text = `${ count } Online`;
if (Date.now() - onlineCacheDate > cacheInvalid) {
onlineCache = RocketChat.models.Users.findUsersNotOffline().count();
onlineCacheDate = Date.now();
}
text = `${ onlineCache } ${ TAPi18n.__('Online') }`;
break;
case 'channel':
if (!channel) {

Loading…
Cancel
Save