11import copy
22import json
3+ import sched
34import threading
45import time
56
@@ -31,14 +32,15 @@ def __init__(self, options=SecureNativeOptions(), http_client=None):
3132 self .send_enabled = False
3233 self .attempt = 0
3334 self .coefficients = [1 , 1 , 2 , 3 , 5 , 8 , 13 ]
35+ self .scheduler = None
3436
3537 if self .options .auto_send and not self .options .disable :
3638 interval_seconds = max (options .interval // 1000 , 1 )
3739 threading .Timer (interval_seconds , self .flush ).start ()
3840
3941 def send_async (self , event , resource_path ):
4042 if self .options .disable :
41- Logger .warn ("SDK is disabled. no operation will be performed" )
43+ Logger .warning ("SDK is disabled. no operation will be performed" )
4244 return
4345
4446 item = QueueItem (
@@ -60,7 +62,7 @@ def flush(self):
6062
6163 def send_sync (self , event , resource_path , retry ):
6264 if self .options .disable :
63- Logger .warn ("SDK is disabled. no operation will be performed" )
65+ Logger .warning ("SDK is disabled. no operation will be performed" )
6466 return
6567
6668 Logger .debug ("Attempting to send event {}" .format (event .as_dict ()))
@@ -113,13 +115,21 @@ def start_event_persist(self):
113115 Logger .debug ("Starting automatic event persistence" )
114116 if self .options .auto_send or self .send_enabled :
115117 self .send_enabled = True
116- # TODO add scheduler
118+ try :
119+ self .scheduler = sched .scheduler (time .time , time .sleep )
120+ self .scheduler .enter (self .options .interval , 1 , self ._send_events )
121+ self .scheduler .run ()
122+ except Exception :
123+ pass
117124 else :
118125 Logger .debug ("Automatic event persistence is disabled, you should persist events manually" )
119126
120127 def stop_event_persist (self ):
121128 if self .send_enabled :
122129 Logger .debug ("Attempting to stop automatic event persistence" )
123- # TODO shut down scheduler
130+ try :
131+ self .scheduler .cancel (self ._send_events )
132+ except ValueError :
133+ pass
124134
125135 Logger .debug ("Stopped event persistence" )
0 commit comments