From c8d900349a2a518c5fee9610b6a903a2ff546e50 Mon Sep 17 00:00:00 2001 From: schneefux Date: Sat, 5 May 2018 23:31:56 +0200 Subject: cache many small periods on disk and aggregate them --- params.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'params.js') diff --git a/params.js b/params.js index b3dcb98..5edf658 100644 --- a/params.js +++ b/params.js @@ -1,6 +1,7 @@ #!/usr/bin/node -const R = require('ramda'); +const R = require('ramda'), + moment = require('moment'); function paramsForHourSample(config) { const requestArgsForRegionStartEnd = R.curry((region, start, end) => [ @@ -9,17 +10,18 @@ function paramsForHourSample(config) { 'filter[gameMode]': R.join(',', config.modes), 'filter[createdAt-start]': start.toISOString(), 'filter[createdAt-end]': end.toISOString(), - 'page[limit]': '5', + 'page[limit]': config.matchesPerRequest, 'page[offset]': '0', } ]); - const requestsPerMinutePerRegion = Math.floor(config.rpm / config.regions.length); - const splitDurationMinutes = Math.floor(60 / requestsPerMinutePerRegion); + const intervalMinutes = moment.duration(config.interval, config.intervalUnit).as('minutes'); + const requestsPerMinutePerRegion = Math.floor(config.requestsPerInterval / config.regions.length); + const splitDurationMinutes = Math.floor(intervalMinutes / requestsPerMinutePerRegion); const splitMoments = (hour) => R.map( (offsetIndex) => [ - hour.clone().startOf('hour').minutes(offsetIndex * splitDurationMinutes), - hour.clone().startOf('hour').minutes((offsetIndex + 1) * splitDurationMinutes), + hour.clone().minutes(offsetIndex * splitDurationMinutes), + hour.clone().minutes((offsetIndex + 1) * splitDurationMinutes), ], R.range(0, requestsPerMinutePerRegion), ); -- cgit v1.3.1