2525from .decision_service import Decision
2626from .error_handler import NoOpErrorHandler as noop_error_handler
2727from .event import event_factory , user_event_factory
28- from .event .event_processor import ForwardingEventProcessor
28+ from .event .event_processor import BatchEventProcessor
2929from .event_dispatcher import EventDispatcher as default_event_dispatcher
3030from .helpers import enums , validator
3131from .helpers .enums import DecisionSources
@@ -50,7 +50,8 @@ def __init__(
5050 notification_center = None ,
5151 event_processor = None ,
5252 datafile_access_token = None ,
53- default_decide_options = None
53+ default_decide_options = None ,
54+ event_processor_options = None
5455 ):
5556 """ Optimizely init method for managing Custom projects.
5657
@@ -78,6 +79,7 @@ def __init__(
7879 optimizely.event.event_processor.BatchEventProcessor.
7980 datafile_access_token: Optional string used to fetch authenticated datafile for a secure project environment.
8081 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.
8183 """
8284 self .logger_name = '.' .join ([__name__ , self .__class__ .__name__ ])
8385 self .is_valid = True
@@ -86,8 +88,19 @@ def __init__(
8688 self .error_handler = error_handler or noop_error_handler
8789 self .config_manager = config_manager
8890 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
91104 )
92105
93106 if default_decide_options is None :
0 commit comments