25
25
from .decision_service import Decision
26
26
from .error_handler import NoOpErrorHandler as noop_error_handler
27
27
from .event import event_factory , user_event_factory
28
- from .event .event_processor import ForwardingEventProcessor
28
+ from .event .event_processor import BatchEventProcessor
29
29
from .event_dispatcher import EventDispatcher as default_event_dispatcher
30
30
from .helpers import enums , validator
31
31
from .helpers .enums import DecisionSources
@@ -50,7 +50,8 @@ def __init__(
50
50
notification_center = None ,
51
51
event_processor = None ,
52
52
datafile_access_token = None ,
53
- default_decide_options = None
53
+ default_decide_options = None ,
54
+ event_processor_options = None
54
55
):
55
56
""" Optimizely init method for managing Custom projects.
56
57
@@ -78,6 +79,7 @@ def __init__(
78
79
optimizely.event.event_processor.BatchEventProcessor.
79
80
datafile_access_token: Optional string used to fetch authenticated datafile for a secure project environment.
80
81
default_decide_options: Optional list of decide options used with the decide APIs.
82
+ event_processor_options: Optional dict of options to be passed to the default batch event processor.
81
83
"""
82
84
self .logger_name = '.' .join ([__name__ , self .__class__ .__name__ ])
83
85
self .is_valid = True
@@ -86,8 +88,19 @@ def __init__(
86
88
self .error_handler = error_handler or noop_error_handler
87
89
self .config_manager = config_manager
88
90
self .notification_center = notification_center or NotificationCenter (self .logger )
89
- self .event_processor = event_processor or ForwardingEventProcessor (
90
- self .event_dispatcher , logger = self .logger , notification_center = self .notification_center ,
91
+ event_processor_defaults = {
92
+ 'batch_size' : 1 ,
93
+ 'flush_interval' : 30 ,
94
+ 'timeout_interval' : 5 ,
95
+ 'start_on_init' : True
96
+ }
97
+ if event_processor_options :
98
+ event_processor_defaults .update (event_processor_options )
99
+ self .event_processor = event_processor or BatchEventProcessor (
100
+ self .event_dispatcher ,
101
+ logger = self .logger ,
102
+ notification_center = self .notification_center ,
103
+ ** event_processor_defaults
91
104
)
92
105
93
106
if default_decide_options is None :
0 commit comments