Worker started flag

This commit is contained in:
Kenny Lee Sin Cheong 2018-09-07 13:40:20 -04:00
parent 7743cc44fa
commit 105a7c0ea6

View file

@ -84,6 +84,7 @@ class IPResolver(IPResolverInterface):
self.app = app
self.geoip_db = geoip2.database.Reader('util/ipresolver/GeoLite2-Country.mmdb')
self._worker = _UpdateIPRange(_UPDATE_INTERVAL)
self._worker_started = False
@ttl_cache(maxsize=100, ttl=600)
def is_ip_possible_threat(self, ip_address):
@ -129,11 +130,14 @@ 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():
if not self.app.config.get('TESTING', False) and not self._worker.is_alive() and \
not self._worker_started:
try:
self._worker.start()
self._worker_started = True
except:
logger.exception('Got exception try to start ip resolver thread')
try:
cache = CACHE
sync_token = cache.get('sync_token', None)