Skip to content

Commit 74f45c0

Browse files
authored
Merge branch 'feature/mtkTracking' into NoneImplementation
2 parents 5b7308c + 8bdc402 commit 74f45c0

File tree

6 files changed

+15
-7
lines changed

6 files changed

+15
-7
lines changed

splitio/client/factory.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,14 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
334334
}
335335
imp_strategy = strategies[cfg['impressionsMode']]
336336

337+
imp_counter = ImpressionsCounter() if cfg['impressionsMode'] != ImpressionsMode.DEBUG else None
338+
339+
strategies = {
340+
ImpressionsMode.OPTIMIZED : StrategyOptimizedMode(imp_counter),
341+
ImpressionsMode.DEBUG : StrategyDebugMode(),
342+
}
343+
imp_strategy = strategies[cfg['impressionsMode']]
344+
337345
imp_manager = ImpressionsManager(
338346
_wrap_impression_listener(cfg['impressionListener'], sdk_metadata),
339347
imp_strategy)
@@ -346,6 +354,7 @@ def _build_in_memory_factory(api_key, cfg, sdk_url=None, events_url=None, # pyl
346354
EventSynchronizer(apis['events'], storages['events'], cfg['eventsBulkSize']),
347355
ImpressionsCountSynchronizer(apis['impressions'], imp_manager),
348356
)
357+
imp_count_sync_task = ImpressionsCountSyncTask(synchronizers.impressions_count_sync.synchronize_counters) if cfg['impressionsMode'] == 'OPTIMIZED' else None
349358

350359
tasks = SplitTasks(
351360
SplitSynchronizationTask(
@@ -443,7 +452,6 @@ def _build_redis_factory(api_key, cfg):
443452
recorder,
444453
)
445454

446-
447455
def _build_localhost_factory(cfg):
448456
"""Build and return a localhost factory for testing/development purposes."""
449457
storages = {
@@ -470,6 +478,7 @@ def _build_localhost_factory(cfg):
470478
synchronizer = LocalhostSynchronizer(synchronizers, tasks)
471479
manager = Manager(ready_event, synchronizer, None, False, sdk_metadata)
472480
manager.start()
481+
473482
recorder = StandardRecorder(
474483
ImpressionsManager(None, StrategyDebugMode()),
475484
storages['events'],

splitio/engine/strategies/strategy_optimized_mode.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ def __init__(self, counter):
1515
self._observer = Observer(_IMPRESSION_OBSERVER_CACHE_SIZE)
1616
self._counter = counter
1717

18-
1918
def process_impressions(self, impressions):
2019
"""
2120
Process impressions.

splitio/sync/impression.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import queue
33

44
from splitio.api import APIException
5+
from splitio.engine.strategies import Counter
56

67

78
_LOGGER = logging.getLogger(__name__)
@@ -68,18 +69,18 @@ def synchronize_impressions(self):
6869

6970

7071
class ImpressionsCountSynchronizer(object):
71-
def __init__(self, impressions_api, impressions_manager):
72+
def __init__(self, impressions_api, impressions_counter):
7273
"""
7374
Class constructor.
7475
7576
:param impressions_api: Impressions Api object to send data to the backend
7677
:type impressions_api: splitio.api.impressions.ImpressionsAPI
7778
:param impressions_manager: Impressions manager instance
78-
:type impressions_manager: splitio.engine.impressions.Manager
79+
:type impressions_counter: splitio.engine.strategies
7980
8081
"""
8182
self._impressions_api = impressions_api
82-
self._impressions_manager = impressions_manager
83+
self._impressions_counter = impressions_counter
8384

8485
def synchronize_counters(self):
8586
"""Send impressions from both the failed and new queues."""

splitio/sync/synchronizer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,7 @@ def stop_periodic_data_recording(self, blocking):
367367
if self._split_tasks.unique_keys_task is not None:
368368
tasks.append(self._split_tasks.unique_keys_task)
369369
tasks.append(self._split_tasks.clear_filter_task)
370+
370371
for task in tasks:
371372
stop_event = threading.Event()
372373
task.stop(stop_event)

tests/integration/test_client_e2e.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
from splitio.recorder.recorder import StandardRecorder, PipelinedRecorder
2222
from splitio.client.config import DEFAULT_CONFIG
2323

24-
2524
class InMemoryIntegrationTests(object):
2625
"""Inmemory storage-based integration tests."""
2726

tests/tasks/test_impressions_sync.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from splitio.engine.strategies import Counter
1313
from splitio.engine.strategies.strategy_optimized_mode import StrategyOptimizedMode
1414

15-
1615
class ImpressionsSyncTests(object):
1716
"""Impressions Syncrhonization task test cases."""
1817

0 commit comments

Comments
 (0)