diff --git a/synse_server/cache.py b/synse_server/cache.py index 9f019695..db7a5cf2 100644 --- a/synse_server/cache.py +++ b/synse_server/cache.py @@ -24,7 +24,6 @@ ) device_cache = aiocache.SimpleMemoryCache( - ttl=config.options.get('cache.device.ttl', None), namespace=NS_DEVICE, ) diff --git a/synse_server/config.py b/synse_server/config.py index 995efdb9..332877c7 100644 --- a/synse_server/config.py +++ b/synse_server/config.py @@ -20,8 +20,8 @@ )), )), DictOption('cache', default=None, scheme=Scheme( - DictOption('meta', scheme=Scheme( - Option('ttl', default=20, field_type=int) + DictOption('device', scheme=Scheme( + Option('rebuild_every', default=180, field_type=int) # three minutes )), DictOption('transaction', scheme=Scheme( Option('ttl', default=300, field_type=int) # five minutes diff --git a/synse_server/server.py b/synse_server/server.py index 6c45b45d..bcd0dbdf 100644 --- a/synse_server/server.py +++ b/synse_server/server.py @@ -6,7 +6,7 @@ from sanic_prometheus import monitor import synse_server -from synse_server import app, config, plugin +from synse_server import app, config, plugin, tasks from synse_server.i18n import _ from synse_server.log import logger, setup_logger @@ -105,6 +105,10 @@ def run(self): if self.log_header: sys.stdout.write(self._header) + # Add background tasks. This needs to be done at run so any tasks + # that take config options have the loaded config available to them. + tasks.register_with_app(self.app) + # If application metrics are enabled, configure the application now. if config.options.get('metrics.enabled'): logger.info(_('application performance metrics enabled')) diff --git a/synse_server/tasks.py b/synse_server/tasks.py index b180ec35..6091e2a9 100644 --- a/synse_server/tasks.py +++ b/synse_server/tasks.py @@ -2,6 +2,7 @@ import asyncio +from synse_server import config from synse_server.cache import update_device_cache from synse_server.i18n import _ from synse_server.log import logger @@ -20,7 +21,7 @@ def register_with_app(app): async def _rebuild_device_cache(): """Periodically rebuild the device cache.""" - interval = 3 * 60 # 3 minutes + interval = config.options.get('cache.device.rebuild_every', 3 * 60) # 3 minute default while True: logger.info(