Home Assistant Unofficial Reference 2024.12.1
homeassistant.components.mqtt.util.EnsureJobAfterCooldown Class Reference

Public Member Functions

None __init__ (self, float timeout, Callable[[], Coroutine[Any, None, None]] callback_job)
 
None async_cleanup (self)
 
asyncio.Task async_execute (self)
 
None async_schedule (self)
 
None set_timeout (self, float timeout)
 

Private Member Functions

None _async_cancel_timer (self)
 
None _async_job (self)
 
None _async_task_done (self, asyncio.Task task)
 
None _async_timer_reached (self)
 

Private Attributes

 _callback
 
 _loop
 
 _next_execute_time
 
 _task
 
 _timeout
 
 _timer
 

Detailed Description

Ensure a cool down period before executing a job.

When a new execute request arrives we cancel the current request
and start a new one.

We allow patching this util, as we generally have exceptions
for sleeps/waits/debouncers/timers causing long run times in tests.

Definition at line 48 of file util.py.

Constructor & Destructor Documentation

◆ __init__()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown.__init__ (   self,
float  timeout,
Callable[[], Coroutine[Any, None, None]]   callback_job 
)
Initialize the timer.

Definition at line 58 of file util.py.

Member Function Documentation

◆ _async_cancel_timer()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown._async_cancel_timer (   self)
private
Cancel any pending task.

Definition at line 100 of file util.py.

◆ _async_job()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown._async_job (   self)
private
Execute after a cooldown period.

Definition at line 73 of file util.py.

◆ _async_task_done()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown._async_task_done (   self,
asyncio.Task  task 
)
private
Handle task done.

Definition at line 81 of file util.py.

◆ _async_timer_reached()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown._async_timer_reached (   self)
private
Handle timer fire.

Definition at line 122 of file util.py.

◆ async_cleanup()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown.async_cleanup (   self)
Cleanup any pending task.

Definition at line 134 of file util.py.

◆ async_execute()

asyncio.Task homeassistant.components.mqtt.util.EnsureJobAfterCooldown.async_execute (   self)
Execute the job.

Definition at line 86 of file util.py.

◆ async_schedule()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown.async_schedule (   self)
Ensure we execute after a cooldown period.

Definition at line 107 of file util.py.

◆ set_timeout()

None homeassistant.components.mqtt.util.EnsureJobAfterCooldown.set_timeout (   self,
float  timeout 
)
Set a new timeout period.

Definition at line 69 of file util.py.

Member Data Documentation

◆ _callback

homeassistant.components.mqtt.util.EnsureJobAfterCooldown._callback
private

Definition at line 64 of file util.py.

◆ _loop

homeassistant.components.mqtt.util.EnsureJobAfterCooldown._loop
private

Definition at line 62 of file util.py.

◆ _next_execute_time

homeassistant.components.mqtt.util.EnsureJobAfterCooldown._next_execute_time
private

Definition at line 67 of file util.py.

◆ _task

homeassistant.components.mqtt.util.EnsureJobAfterCooldown._task
private

Definition at line 83 of file util.py.

◆ _timeout

homeassistant.components.mqtt.util.EnsureJobAfterCooldown._timeout
private

Definition at line 63 of file util.py.

◆ _timer

homeassistant.components.mqtt.util.EnsureJobAfterCooldown._timer
private

Definition at line 104 of file util.py.


The documentation for this class was generated from the following file: