diff --git a/src/main/kotlin/org/radarbase/gateway/Config.kt b/src/main/kotlin/org/radarbase/gateway/Config.kt index 6cfaa25..cd8c996 100644 --- a/src/main/kotlin/org/radarbase/gateway/Config.kt +++ b/src/main/kotlin/org/radarbase/gateway/Config.kt @@ -80,7 +80,7 @@ data class GarminConfig( if (enabled) { check(GarminUserRepository::class.java.isAssignableFrom(userRepository)) { "$userRepositoryClass is not valid. Please specify a class that is a subclass of" + - " `org.radarbase.push.integration.garmin.user.GarminUserRepository`" + " `org.radarbase.push.integration.garmin.user.GarminUserRepository`" } } } @@ -91,7 +91,9 @@ data class BackfillConfig( val redis: RedisConfig = RedisConfig(), val maxThreads: Int = 4, val defaultEndDate: Instant = Instant.MAX, - val userBackfill: List = emptyList() + val userBackfill: List = emptyList(), + val requestsPerUserPerIteration: Int = 40, + val iterationIntervalMinutes: Long = 5, ) data class RedisConfig( diff --git a/src/main/kotlin/org/radarbase/push/integration/garmin/converter/SleepScoreGarminAvroConverter.kt b/src/main/kotlin/org/radarbase/push/integration/garmin/converter/SleepScoreGarminAvroConverter.kt index 3fdda70..45f4bb0 100644 --- a/src/main/kotlin/org/radarbase/push/integration/garmin/converter/SleepScoreGarminAvroConverter.kt +++ b/src/main/kotlin/org/radarbase/push/integration/garmin/converter/SleepScoreGarminAvroConverter.kt @@ -18,7 +18,7 @@ class SleepScoreGarminAvroConverter( private fun getRecord(node: JsonNode): SpecificRecord { return GarminSleepScoreSample.newBuilder().apply { - summaryId = summaryId + summaryId = node["summaryId"]?.asText() time = node["startTimeInSeconds"].asDouble() startTimeOffset = node["startTimeOffsetInSeconds"]?.asInt() timeReceived = Instant.now().toEpochMilli() / 1000.0 diff --git a/src/main/kotlin/org/radarbase/push/integration/garmin/service/BackfillService.kt b/src/main/kotlin/org/radarbase/push/integration/garmin/service/BackfillService.kt index 083cee0..6fcd341 100644 --- a/src/main/kotlin/org/radarbase/push/integration/garmin/service/BackfillService.kt +++ b/src/main/kotlin/org/radarbase/push/integration/garmin/service/BackfillService.kt @@ -47,7 +47,7 @@ class BackfillService( ) private val requestsPerUserPerIteration: Int - get() = 40 + get() = config.pushIntegration.garmin.backfill.requestsPerUserPerIteration private val futures: MutableList> = mutableListOf() @@ -64,7 +64,12 @@ class BackfillService( private fun start() { logger.info("Application Initialisation completed. Starting Backfill service...") - executorService.scheduleAtFixedRate(::iterateUsers, 1, 5, TimeUnit.MINUTES) + executorService.scheduleAtFixedRate( + ::iterateUsers, + 1, + config.pushIntegration.garmin.backfill.iterationIntervalMinutes, + TimeUnit.MINUTES + ) } private fun stop() { @@ -124,6 +129,5 @@ class BackfillService( companion object { private val logger = LoggerFactory.getLogger(BackfillService::class.java) - private const val WAIT_TIME_MS = 10_000L } }