Skip to content

Commit 367cacf

Browse files
committed
Merge branch 'NoneImplementation' of github.com:splitio/python-client into NoneImplementation
2 parents 699b191 + d5529d3 commit 367cacf

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

splitio/sync/unique_keys.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
from splitio.engine.sender_adapters.in_memory_sender_adapter import InMemorySenderAdapter
33

44
_UNIQUE_KEYS_MAX_BULK_SIZE = 5000
5+
import threading
6+
import logging
7+
from splitio.engine.filters.bloom_filter import BloomFilter
8+
from splitio.engine.sender_adapters.in_memory_sender_adapter import InMemorySenderAdapter
9+
10+
_LOGGER = logging.getLogger(__name__)
511

612
class UniqueKeysSynchronizer(object):
713
"""Unique Keys Synchronizer class."""
@@ -31,6 +37,17 @@ def SendAll(self):
3137
self._impressions_sender_adapter.record_unique_keys(bulk)
3238

3339
def _split_cache_to_bulks(self, cache):
40+
cache_size = self._uniqe_keys_tracker._get_dict_size()
41+
if cache_size <= self._max_bulk_size:
42+
self._uniqe_keys_tracker._impressions_sender_adapter.record_unique_keys(self._uniqe_keys_tracker._cache)
43+
else:
44+
for bulk in self._split_cache_to_bulks():
45+
self._uniqe_keys_tracker._impressions_sender_adapter.record_unique_keys(bulk)
46+
47+
with self._lock:
48+
self._uniqe_keys_tracker._cache = {}
49+
50+
def _split_cache_to_bulks(self):
3451
"""
3552
Split the current unique keys dictionary into seperate dictionaries,
3653
each with the size of max_bulk_size. Overflow the last feature set() to new unique keys dictionary.

0 commit comments

Comments
 (0)