1414
1515class Scheduler (Generic [T ]):
1616
17- def schedule (self , data : T | None = None , interval : float = 60 , one_shot : bool = False ) -> None :
17+ def schedule_periodic (self , data : T | None = None , interval : float = 60 ) -> None :
18+ raise NotImplementedError ()
19+
20+ def schedule_one_shot (self , data : T | None = None , interval : float = 60 ) -> None :
1821 raise NotImplementedError ()
1922
2023 def stop (self ) -> None :
@@ -23,22 +26,23 @@ def stop(self) -> None:
2326
2427class AbstractScheduler (Scheduler [T ]):
2528
26- def __init__ (self , timer : IReusableTimer ) -> None :
29+ def __init__ (self , timer : IReusableTimer , interval : float = 60 ) -> None :
2730 self ._timer = timer
31+ self ._interval = interval
2832
2933 def __enter__ (self ) -> Scheduler [T ]:
3034 return self
3135
3236 def __exit__ (self , exc_type : Any , exc_val : Any , exc_tb : Any ) -> None :
3337 self .stop ()
3438
35- def schedule (self , data : T | None = None , interval : float = 60 , one_shot : bool = False ) -> None :
36- if one_shot :
37- self . _timer . start ( interval , self . _execute , [ data ] )
38- log . info ( 'One-shot execution scheduled' , data = data , interval = interval )
39- else :
40- self ._timer .start (interval , self ._execute_and_restart , [data ])
41- log .info ('Periodic execution scheduled' , data = data , interval = interval )
39+ def schedule_periodic (self , data : T | None = None , interval : float = 60 ) -> None :
40+ self . _timer . start ( interval , self . _execute_and_restart , [ data ])
41+ log . info ( 'Periodic execution scheduled' , data = data , interval = interval )
42+
43+ def schedule_one_shot ( self , data : T | None = None , interval : float = 60 ) -> None :
44+ self ._timer .start (interval , self ._execute , [data ])
45+ log .info ('One-shot execution scheduled' , data = data , interval = interval )
4246
4347 def stop (self ) -> None :
4448 self ._timer .cancel ()
0 commit comments