From 549558142de172059bdd739fd0dff2498b5a3063 Mon Sep 17 00:00:00 2001 From: m5r Date: Sun, 29 Aug 2021 21:10:25 +0800 Subject: [PATCH] parallelize metric fetching requests --- app/public-area/queries/get-metrics.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/app/public-area/queries/get-metrics.ts b/app/public-area/queries/get-metrics.ts index 7c9111e..30ab57f 100644 --- a/app/public-area/queries/get-metrics.ts +++ b/app/public-area/queries/get-metrics.ts @@ -1,16 +1,19 @@ import { resolver } from "blitz"; + import db from "../../../db"; export default resolver.pipe(async () => { - const phoneNumbers = await db.phoneNumber.count(); - const smsExchanged = await db.message.count(); - const allPhoneCalls = await db.phoneCall.findMany(); - const secondsCalled = allPhoneCalls.reduce((minutes, phoneCall) => { + const [phoneNumbers, smsExchanged, allPhoneCalls] = await Promise.all([ + db.phoneNumber.count(), + db.message.count(), + db.phoneCall.findMany(), + ]); + const secondsCalled = allPhoneCalls.reduce((seconds, phoneCall) => { if (!phoneCall.duration) { - return minutes; + return seconds; } - return minutes + Number.parseInt(phoneCall.duration); + return seconds + Number.parseInt(phoneCall.duration); }, 0); const minutesCalled = Math.round(secondsCalled / 60);