diff options
-rw-r--r-- | src/exchange/exchange.conf | 4 | ||||
-rw-r--r-- | src/exchange/taler-exchange-aggregator.c | 19 |
2 files changed, 20 insertions, 3 deletions
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 @@ -279,6 +279,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. */ @@ -624,6 +629,17 @@ parse_wirewatch_config () 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", "currency", @@ -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); } |