diff --git a/src/amplitude/client.py b/src/amplitude/client.py index 2e519f2..2af1942 100644 --- a/src/amplitude/client.py +++ b/src/amplitude/client.py @@ -3,7 +3,7 @@ Classes: Amplitude: the Amplitude client class """ - +import time from typing import Optional, Union, List from amplitude.config import Config @@ -163,7 +163,9 @@ def remove(self, plugin: Plugin): self.__timeline.remove(plugin) return self - def shutdown(self): + def shutdown(self, grace_time_milliseconds=0): """Shutdown the client instance, not accepting new events, flush all events in buffer""" self.configuration.opt_out = True self.__timeline.shutdown() + if grace_time_milliseconds > 0: + time.sleep(grace_time_milliseconds / 1000) diff --git a/src/test/test_client.py b/src/test/test_client.py index 56ae886..028d666 100644 --- a/src/test/test_client.py +++ b/src/test/test_client.py @@ -15,7 +15,7 @@ def setUp(self) -> None: configuration=Config(flush_queue_size=10, flush_interval_millis=500)) def tearDown(self) -> None: - self.client.shutdown() + self.client.shutdown(100) def test_amplitude_client_track_success(self): post_method = MagicMock()