You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20Lines changed: 20 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,23 @@
1
+
# Optimizely C# SDK Changelog
2
+
3
+
## 3.3.0
4
+
September 26th, 2019
5
+
6
+
### New Features:
7
+
- Configuration manager is set to PollingProjectConfigManager and for datafile will be started by default. Requests to download and update datafile are made in a separate thread and are scheduled with fixed delay.
8
+
- Added support for event batching via the event processor.
9
+
- Events generated by methods like `Activate`, `Track`, and `IsFeatureEnabled` will be held in a queue until the configured batch size is reached, or the configured flush interval has elapsed. Then, they will be combined into a request and sent to the event dispatcher.
10
+
- To configure event batching, set the `MaxEventBatchSize` and `MaxEventFlushInterval` properties in the `OptimizelyFactory` using `OptimizelyFactory.SetBatchSize(int batchSize)` and `OptimizelyFactory.SetFlushInterval(TimeSpan flushInterval)` and then creating using `OptimizelyFactory.NewDefaultInstance`.
11
+
- Event batching is enabled by default. `eventBatchSize` defaults to `10`. `eventFlushInterval` defaults to `30000` milliseconds.
12
+
- Updated the `Dispose` method representing the process of closing the instance. When `Dispose` is called, any events waiting to be sent as part of a batched event request will be immediately batched and sent to the event dispatcher.
13
+
- If any such requests were sent to the event dispatcher, `Stop` waits for provided `TimeoutInterval` before stoping, so that events get successfully dispatched.
14
+
-`OptimizelyFactory` now provides support of setting configuration variables from ***App.config***, User will now be able to provide configuration variables of `HttpConfigManager` and `BatchEventProcessor` in ***App.config***. Steps of usage are provided in [README.md](https://github.com/optimizely/csharp-sdk#using-appconfig-in-optimizelyfactory).
15
+
16
+
### Deprecated
17
+
-`EventBuilder` was deprecated and now we will be using `UserEventFactory` and `EventFactory` to create LogEvent Object.
18
+
- Deprecated `Track` notifications in favor of explicit `LogEvent` notification.
19
+
- New features will no longer be supported on `.net standard 1.6` and `.net 3.5`
Copy file name to clipboardExpand all lines: README.md
+32-1Lines changed: 32 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -68,7 +68,7 @@ The Optimizely client object accepts the following plug-ins:
68
68
2.`ILogger` exposes a single method, Log, to record activity in the SDK. An example of a class to bridge the SDK's Log to Log4Net is provided in the Demo Application.
69
69
3.`IErrorHandler` allows you to implement custom logic when Exceptions are thrown. Note that Exception information is already included in the Log.
70
70
4.`ProjectConfigManager` exposes method for retrieving ProjectConfig instance. Examples include `FallbackProjectConfigManager` and `HttpProjectConfigManager`.
71
-
71
+
5.`EventProcessor` provides an intermediary processing stage within event production. It's assumed that the EventProcessor dispatches events via a provided EventDispatcher. Examples include `ForwardingEventProcessor` and `BatchEventProcessor`.
72
72
These are optional plug-ins and default behavior is implement if none are provided.
73
73
74
74
#### OptimizelyFactory
@@ -127,6 +127,37 @@ User can provide variables using following procedure:
[BatchEventProcessor](https://github.com/optimizely/csharp-sdk/blob/master/OptimizelySDK/Event/BatchEventProcessor.cs) is a batched implementation of the [EventProcessor](https://github.com/optimizely/csharp-sdk/blob/master/OptimizelySDK/Event/EventProcessor.cs)
132
+
* Events passed to the BatchEventProcessor are immediately added to a BlockingQueue.
133
+
* The BatchEventProcessor maintains a single consumer thread that pulls events off of the BlockingQueue and buffers them for either a configured batch size or for a maximum duration before the resulting LogEvent is sent to the NotificationManager.
134
+
##### Use BatchEventProcessor
135
+
136
+
```
137
+
EventProcessor eventProcessor = new BatchEventProcessor.Builder()
138
+
.WithMaxBatchSize(MaxEventBatchSize)
139
+
.WithFlushInterval(MaxEventFlushInterval)
140
+
.WithEventDispatcher(eventDispatcher)
141
+
.WithNotificationCenter(notificationCenter)
142
+
.Build();
143
+
```
144
+
145
+
##### Max Event Batch Size
146
+
147
+
The Max event batch size is used to limit eventQueue batch size and events will be dispatched when limit reaches.
148
+
149
+
##### Flush Interval
150
+
151
+
The FlushInterval is used to specify a delay between consecutive flush events call. Event batch will be dispatched after meeting this specified timeSpan.
0 commit comments