diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py index 1ac375df5ea1464db6c31ba3aa424d88e285c5f8..35ad30ce65dcbcde6298d682edcef52ba9007947 100644 --- a/inventory_provider/tasks/worker.py +++ b/inventory_provider/tasks/worker.py @@ -277,15 +277,18 @@ def _refresh_peers(hostname, key_base, peers): logger.debug( 'removing cached %s for %r' % (key_base, hostname)) r = get_next_redis(InventoryTask.config) - for k in r.scan_iter(key_base + ':*'): - # potential race condition: another proc could have - # delete this element between the time we read the - # keys and the next statement ... check for None below - value = r.get(k.decode('utf-8')) - if value: - value = json.loads(value.decode('utf-8')) - if value['router'] == hostname: - r.delete(k) + # WARNING (optimization): this is an expensive query if + # the redis connection is slow, and we currently only + # call this method during a full refresh + # for k in r.scan_iter(key_base + ':*'): + # # potential race condition: another proc could have + # # delete this element between the time we read the + # # keys and the next statement ... check for None below + # value = r.get(k.decode('utf-8')) + # if value: + # value = json.loads(value.decode('utf-8')) + # if value['router'] == hostname: + # r.delete(k) rp = r.pipeline() for peer in peers: