From effa6451a265d0a4d745443e9ee022c3f24e1bb8 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 1 Mar 2020 12:21:03 +0100 Subject: fix FIXME --- src/exchange/exchange.conf | 4 +++- src/exchange/taler-exchange-aggregator.c | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/exchange/exchange.conf b/src/exchange/exchange.conf index c2426bc7f..8144bddcd 100644 --- a/src/exchange/exchange.conf +++ b/src/exchange/exchange.conf @@ -54,6 +54,9 @@ PORT = 8081 BASE_URL = http://localhost:8081/ +# How long should the aggregator sleep if it has nothing to do? +AGGREGATOR_IDLE_SLEEP_INTERVAL = 60 s + # how long is one signkey valid? SIGNKEY_DURATION = 4 weeks @@ -81,4 +84,3 @@ LOOKAHEAD_PROVIDE = 4 weeks 1 day # Etag / filename for the privacy policy. # PRIVACY_ETAG = - diff --git a/src/exchange/taler-exchange-aggregator.c b/src/exchange/taler-exchange-aggregator.c index d380c3915..550be55c5 100644 --- a/src/exchange/taler-exchange-aggregator.c +++ b/src/exchange/taler-exchange-aggregator.c @@ -278,6 +278,11 @@ static struct GNUNET_CURL_Context *ctx; */ static struct GNUNET_CURL_RescheduleContext *rc; +/** + * How long should we sleep when idle before trying to find more work? + */ +static struct GNUNET_TIME_Relative aggreator_idle_sleep_interval; + /** * Value to return from main(). #GNUNET_OK on success, #GNUNET_SYSERR * on serious errors. @@ -623,6 +628,17 @@ parse_wirewatch_config () "BASE_URL"); return GNUNET_SYSERR; } + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_time (cfg, + "exchange", + "AGGREGATOR_IDLE_SLEEP_INTERVAL", + &aggregator_idle_sleep_interval)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "exchange", + "AGGREGATOR_IDLE_SLEEP_INTERVAL"); + return GNUNET_SYSERR; + } if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_string (cfg, "taler", @@ -1424,10 +1440,9 @@ run_aggregation (void *cls) } else { - /* FIXME(dold): We might want to read the duration to sleep from the config */ /* nothing to do, sleep for a minute and try again */ GNUNET_assert (NULL == task); - task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES, + task = GNUNET_SCHEDULER_add_delayed (aggregator_idle_sleep_interval, &run_aggregation, NULL); } -- cgit v1.2.3