Timer¶
- class hive.trigger.Timer(**event_config)¶
Bases:
QThread,TriggerTimer Trigger.
Use in the Config file
Task: mode: ... trigger: - name: Timer options: event_name_1: # routine timer interval: 1 # 1 seconds # (float) time interval. event_type: "routine" # (str) 'routine', 'one_shot', 'continue'. event_name_2: # one shot timer interval: 600 # 10 minutes event_type: "one_shot" event_name_3: # continue timer interval: 1 event_type: "continue" repeat_times: 10 # (int) repeat firing times. None for infinite times. Only used in 'continue' timer.
Use in task
Code implementation:
# get timer trigger from somewhere timer: Timer # create a timer handle h = timer.add_timer('event_name_1', 60, "routine") # start a timer handle h.start()
Read the event in the task:
class MyTask(Task): def filter_event(self, event_type: str, event_data: str): if event_type == "timer" and event_data == "event_name_1": ... elif event_type == "timer" and event_data == "event_name_2": ...
Event Type
routine: routine firing timer event regularly (fixed interval).
one_shot: firing timer event once.
continue: continuous firing timer event (vary interval).
Attributes Summary
Methods Summary
add_timer(event_name[, interval, ...])create a timer handle.
cancel all running timers.
cancel all running timers and remove all.
run(self)Attributes Documentation
- TYPE_CONTINUE = 'continue'¶
- TYPE_ONE_SHOT = 'one_shot'¶
- TYPE_ROUTINE = 'routine'¶
- timer_event¶
Methods Documentation
- add_timer(event_name: Optional[str], interval: float = 1, event_type: str = 'one_shot', repeat_times: Optional[int] = None, callback: Optional[Callable[[str, int], Optional[bool]]] = None, replace=False) TimerHandle¶
create a timer handle.
- Parameters
event_name (str) – event name
interval (float) – event interval. unit second.
event_type ({'routine', 'one_shot', 'continue'}) – event type
repeat_times – repeat times when event_type == ‘continue’. None for infinite.
callback – timer callback with signature (event_name:str, counter:int) -> continue:bool?. If None, emit Timer.timer_event(f”timer:{event_name}”).
replace – replace existed timer handle.
- Returns
timer handle
- Return type
TimerHandle
- cancel_all()¶
cancel all running timers.
- clear_all()¶
cancel all running timers and remove all.
- run(self)¶
- who_to_connect_where()¶