@@ -28,13 +28,13 @@ open class DefaultEventDispatcher : BackgroundingCallbacks, OPTEventDispatcher {
2828 static let MAX_FAILURE_COUNT = 3
2929
3030 // default timerInterval
31- open var timerInterval : TimeInterval = 60 * 5 // every five minutes
31+ var timerInterval : TimeInterval = 60 * 5 // every five minutes
3232 // default batchSize.
3333 // attempt to send events in batches with batchSize number of events combined
34- open var batchSize : Int = 10
34+ var batchSize : Int = 10
3535 // start trimming the front of the queue when we get to over maxQueueSize
3636 // TODO: implement
37- open var maxQueueSize : Int = 3000
37+ var maxQueueSize : Int = 30000
3838
3939 lazy var logger = HandlerRegistryService . shared. injectLogger ( )
4040 var backingStore : DataStoreType = . file
@@ -47,9 +47,8 @@ open class DefaultEventDispatcher : BackgroundingCallbacks, OPTEventDispatcher {
4747 // timer as a atomic property.
4848 var timer : AtomicProperty < Timer > = AtomicProperty < Timer > ( )
4949
50- public init ( batchSize: Int = 10 , maxQueueSize: Int = 3000 , backingStore: DataStoreType = . file, dataStoreName: String = " OPTEventQueue " , timerInterval: TimeInterval = 60 * 5 ) {
51- self . batchSize = batchSize
52- self . maxQueueSize = maxQueueSize
50+ public init ( batchSize: Int = 10 , backingStore: DataStoreType = . file, dataStoreName: String = " OPTEventQueue " , timerInterval: TimeInterval = 60 * 5 ) {
51+ self . batchSize = batchSize > 0 ? batchSize : 1
5352 self . backingStore = backingStore
5453 self . backingStoreName = dataStoreName
5554 self . timerInterval = timerInterval
@@ -112,9 +111,17 @@ open class DefaultEventDispatcher : BackgroundingCallbacks, OPTEventDispatcher {
112111
113112 }
114113 while let eventsToSend: [ EventForDispatch ] = self . dataStore. getFirstItems ( count: self . batchSize) {
114+ let actualEventsSize = eventsToSend. count
115115 var eventToSend = eventsToSend. batch ( )
116116 if let _ = eventToSend {
117117 // we merged the event and ready for batch
118+ // if the bacth size is not equal to the actual event size,
119+ // then setup the batchSizeHolder to be the size of the event.
120+ if actualEventsSize != self . batchSize {
121+ batchSizeHolder = actualEventsSize
122+ self . batchSize = actualEventsSize
123+ sendCount = actualEventsSize - 1
124+ }
118125 }
119126 else {
120127 failedBatch ( )
@@ -182,7 +189,7 @@ open class DefaultEventDispatcher : BackgroundingCallbacks, OPTEventDispatcher {
182189
183190 }
184191
185- func sendEvent( event: EventForDispatch , completionHandler: @escaping DispatchCompletionHandler ) {
192+ open func sendEvent( event: EventForDispatch , completionHandler: @escaping DispatchCompletionHandler ) {
186193 let config = URLSessionConfiguration . ephemeral
187194 let session = URLSession ( configuration: config)
188195 var request = URLRequest ( url: event. url)
0 commit comments