Shutdown
Overview
The Shutdown() method provides a graceful way to stop all SDK background activities and ensure all pending events are sent before your application terminates.
Purpose
The Shutdown() API is designed to:
- Stop polling: Terminates the background settings polling mechanism
- Flush batching: If batching is enabled, synchronously flushes all pending events to the server
- Clean up resources: Clears timers and releases background resources
When to Use
You should call Shutdown() when:
- Your application is shutting down or restarting
- You want to ensure all pending events are sent before termination
- You need to clean up SDK resources gracefully
Usage
Basic Example
using VWOFmeSdk;
using VWOFmeSdk.Models.User;
// Initialize VWO SDK
var vwoInitOptions = new VWOInitOptions
{
SdkKey = "YOUR_SDK_KEY",
AccountId = YOUR_ACCOUNT_ID
};
var vwoInstance = VWO.Init(vwoInitOptions);
// Use the SDK...
var getFlag = vwoInstance.GetFlag("feature-key", context);
// Before application shutdown, call Shutdown()
vwoInstance.Shutdown();Behavior
Without Batching
- Stops polling immediately
- Returns quickly after stopping background activities
With Batching
- Stops polling
- Waits synchronously for all pending events in the batch queue to be sent
- Clears timers and releases resources
- Returns after all events are flushed
Error Handling
The Shutdown() method includes built-in error handling:
- If an error occurs during shutdown, it is logged but does not throw an exception
- This ensures your application can continue shutting down even if SDK cleanup encounters issues
Important Notes
-
Synchronous Operation: When batching is enabled,
Shutdown()will block until all events are flushed. This ensures no data loss during application termination. -
No Return Value: The method returns
void. Check logs for shutdown status if needed. -
Best Practice: Call
Shutdown()in your application's cleanup/shutdown handlers (e.g.,Application_Exit,Dispose, or signal handlers).
FlushEvents(): Manually flush batched events without shutting down the SDKUpdateSettings(): Update SDK settings without shutting down
Version
This API was introduced in version 1.16.0.
Updated 4 days ago
