@@ -1145,11 +1145,11 @@ def _build_localhost_factory(cfg):
11451145 telemetry_runtime_producer = telemetry_producer .get_telemetry_runtime_producer ()
11461146 telemetry_evaluation_producer = telemetry_producer .get_telemetry_evaluation_producer ()
11471147
1148- events_queue = queue .Queue ()
1148+ internal_events_queue = queue .Queue ()
11491149 storages = {
1150- 'splits' : InMemorySplitStorage (events_queue , cfg ['flagSetsFilter' ] if cfg ['flagSetsFilter' ] is not None else []),
1151- 'segments' : InMemorySegmentStorage (events_queue ), # not used, just to avoid possible future errors.
1152- 'rule_based_segments' : InMemoryRuleBasedSegmentStorage (events_queue ),
1150+ 'splits' : InMemorySplitStorage (internal_events_queue , cfg ['flagSetsFilter' ] if cfg ['flagSetsFilter' ] is not None else []),
1151+ 'segments' : InMemorySegmentStorage (internal_events_queue ), # not used, just to avoid possible future errors.
1152+ 'rule_based_segments' : InMemoryRuleBasedSegmentStorage (internal_events_queue ),
11531153 'impressions' : LocalhostImpressionsStorage (),
11541154 'events' : LocalhostEventsStorage (),
11551155 }
@@ -1162,6 +1162,8 @@ def _build_localhost_factory(cfg):
11621162 LocalSegmentSynchronizer (cfg ['segmentDirectory' ], storages ['splits' ], storages ['segments' ]),
11631163 None , None , None ,
11641164 )
1165+ events_manager = EventsManager (EventsManagerConfig (), EventsDelivery ())
1166+ internal_events_task = EventsTask (events_manager .notify_internal_event , internal_events_queue )
11651167
11661168 feature_flag_sync_task = None
11671169 segment_sync_task = None
@@ -1178,6 +1180,7 @@ def _build_localhost_factory(cfg):
11781180 feature_flag_sync_task ,
11791181 segment_sync_task ,
11801182 None , None , None ,
1183+ internal_events_task = internal_events_task
11811184 )
11821185
11831186 sdk_metadata = util .get_metadata (cfg )
@@ -1199,8 +1202,7 @@ def _build_localhost_factory(cfg):
11991202 telemetry_evaluation_producer ,
12001203 telemetry_runtime_producer
12011204 )
1202- internal_events_queue = queue .Queue ()
1203- events_manager = EventsManager (EventsManagerConfig (), EventsDelivery ())
1205+ internal_events_task .start ()
12041206
12051207 return SplitFactory (
12061208 'localhost' ,
@@ -1226,6 +1228,8 @@ async def _build_localhost_factory_async(cfg):
12261228
12271229 internal_events_queue = asyncio .Queue ()
12281230 events_manager = EventsManagerAsync (EventsManagerConfig (), EventsDelivery ())
1231+ internal_events_task = EventsTaskAsync (events_manager .notify_internal_event , internal_events_queue )
1232+
12291233 storages = {
12301234 'splits' : InMemorySplitStorageAsync (internal_events_queue ),
12311235 'segments' : InMemorySegmentStorageAsync (internal_events_queue ), # not used, just to avoid possible future errors.
@@ -1258,6 +1262,7 @@ async def _build_localhost_factory_async(cfg):
12581262 feature_flag_sync_task ,
12591263 segment_sync_task ,
12601264 None , None , None ,
1265+ internal_events_task = internal_events_task
12611266 )
12621267
12631268 sdk_metadata = util .get_metadata (cfg )
@@ -1277,8 +1282,9 @@ async def _build_localhost_factory_async(cfg):
12771282 storages ['impressions' ],
12781283 telemetry_evaluation_producer ,
12791284 telemetry_runtime_producer
1280- )
1281-
1285+ )
1286+ internal_events_task .start ()
1287+
12821288 return SplitFactoryAsync (
12831289 'localhost' ,
12841290 storages ,
0 commit comments