diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2018-05-05 23:31:56 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2018-05-05 23:31:56 +0200 |
| commit | c8d900349a2a518c5fee9610b6a903a2ff546e50 (patch) | |
| tree | 3e99c3f388068e78743653dec46cf106437a7052 /params.js | |
| parent | 075c26e94f16379b302570e689d244edef94cb04 (diff) | |
| download | brokentalents-c8d900349a2a518c5fee9610b6a903a2ff546e50.tar.gz brokentalents-c8d900349a2a518c5fee9610b6a903a2ff546e50.zip | |
cache many small periods on disk and aggregate them
Diffstat (limited to 'params.js')
| -rw-r--r-- | params.js | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -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), ); |
