From bff91c0fb95b60c1e541fc880527b81c22db06f1 Mon Sep 17 00:00:00 2001 From: Kenny Lee Sin Cheong Date: Wed, 5 Sep 2018 13:35:55 -0400 Subject: [PATCH] UpdateIPRange thread start on the 1st call to _get_location_function Thread will start on first call to _get_location_function as opposed to IPResolver's new instance. --- util/ipresolver/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/ipresolver/__init__.py b/util/ipresolver/__init__.py index d57bacd18..97cb3acec 100644 --- a/util/ipresolver/__init__.py +++ b/util/ipresolver/__init__.py @@ -84,8 +84,6 @@ class IPResolver(IPResolverInterface): self.app = app self.geoip_db = geoip2.database.Reader('util/ipresolver/GeoLite2-Country.mmdb') self._worker = _UpdateIPRange(_UPDATE_INTERVAL) - if not app.config.get('TESTING', False): - self._worker.start() @ttl_cache(maxsize=100, ttl=600) def is_ip_possible_threat(self, ip_address): @@ -131,6 +129,8 @@ class IPResolver(IPResolverInterface): return location_function(ip_address) def _get_location_function(self): + if not self.app.config.get('TESTING', False) and not self._worker.is_alive(): + self._worker.start() try: cache = CACHE sync_token = cache.get('sync_token', None)