Enable query result cache for meta / stats / hashtags trend (#4978)
This commit is contained in:
parent
3ea7a49c1c
commit
7e7f94d685
4 changed files with 20 additions and 5 deletions
|
@ -96,6 +96,18 @@ export function initDb(justBorrow = false, sync = false, log = false) {
|
|||
extra: config.db.extra,
|
||||
synchronize: process.env.NODE_ENV === 'test' || sync,
|
||||
dropSchema: process.env.NODE_ENV === 'test' && !justBorrow,
|
||||
cache: {
|
||||
type: 'redis',
|
||||
options: {
|
||||
host: config.redis.host,
|
||||
port: config.redis.port,
|
||||
options:{
|
||||
auth_pass: config.redis.pass,
|
||||
prefix: config.redis.prefix,
|
||||
db: config.redis.db || 0
|
||||
}
|
||||
}
|
||||
},
|
||||
logging: log,
|
||||
logger: log ? new MyCustomLogger() : undefined,
|
||||
entities: [
|
||||
|
|
|
@ -59,6 +59,7 @@ export default define(meta, async () => {
|
|||
.where(`note.createdAt > :date`, { date: new Date(Date.now() - rangeA) })
|
||||
.andWhere(`note.tags != '{}'`)
|
||||
.select(['note.tags', 'note.userId'])
|
||||
.cache(60000) // 1 min
|
||||
.getMany();
|
||||
|
||||
if (tagNotes.length === 0) {
|
||||
|
@ -108,6 +109,7 @@ export default define(meta, async () => {
|
|||
.where(':tag = ANY(note.tags)', { tag: tag })
|
||||
.andWhere('note.createdAt < :lt', { lt: new Date(Date.now() - (interval * i)) })
|
||||
.andWhere('note.createdAt > :gt', { gt: new Date(Date.now() - (interval * (i + 1))) })
|
||||
.cache(60000) // 1 min
|
||||
.getRawOne()
|
||||
.then(x => parseInt(x.count, 10))
|
||||
)));
|
||||
|
@ -119,6 +121,7 @@ export default define(meta, async () => {
|
|||
.select('count(distinct note.userId)')
|
||||
.where(':tag = ANY(note.tags)', { tag: tag })
|
||||
.andWhere('note.createdAt > :gt', { gt: new Date(Date.now() - (interval * range)) })
|
||||
.cache(60000) // 1 min
|
||||
.getRawOne()
|
||||
.then(x => parseInt(x.count, 10))
|
||||
));
|
||||
|
|
|
@ -94,7 +94,7 @@ export const meta = {
|
|||
export default define(meta, async (ps, me) => {
|
||||
const instance = await fetchMeta(true);
|
||||
|
||||
const emojis = await Emojis.find({ host: null });
|
||||
const emojis = await Emojis.find({ where: { host: null }, cache: 3600000 }); // 1 hour
|
||||
|
||||
const response: any = {
|
||||
maintainerName: instance.maintainerName,
|
||||
|
|
|
@ -57,10 +57,10 @@ export default define(meta, async () => {
|
|||
driveUsageLocal,
|
||||
driveUsageRemote
|
||||
] = await Promise.all([
|
||||
Notes.count(),
|
||||
Notes.count({ userHost: null }),
|
||||
Users.count(),
|
||||
Users.count({ host: null }),
|
||||
Notes.count({ cache: 3600000 }), // 1 hour
|
||||
Notes.count({ where: { userHost: null }, cache: 3600000 }),
|
||||
Users.count({ cache: 3600000 }),
|
||||
Users.count({ where: { host: null }, cache: 3600000 }),
|
||||
federationChart.getChart('hour', 1).then(chart => chart.instance.total[0]),
|
||||
driveChart.getChart('hour', 1).then(chart => chart.local.totalSize[0]),
|
||||
driveChart.getChart('hour', 1).then(chart => chart.remote.totalSize[0]),
|
||||
|
|
Loading…
Reference in a new issue