Fully convert async_track_time_interval to use HassJob (#41513)

The callback type for interval_listener was being determined
each time the interval hit.

This was missed in the original conversion.
pull/41535/head
J. Nick Koston 2020-10-09 02:35:09 -05:00 committed by GitHub
parent a8a2109cef
commit 3a863c4a0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 3 deletions

View File

@ -1095,6 +1095,7 @@ def async_track_time_interval(
) -> CALLBACK_TYPE: ) -> CALLBACK_TYPE:
"""Add a listener that fires repetitively at every timedelta interval.""" """Add a listener that fires repetitively at every timedelta interval."""
remove = None remove = None
interval_listener_job = None
job = HassJob(action) job = HassJob(action)
@ -1106,14 +1107,19 @@ def async_track_time_interval(
def interval_listener(now: datetime) -> None: def interval_listener(now: datetime) -> None:
"""Handle elapsed intervals.""" """Handle elapsed intervals."""
nonlocal remove nonlocal remove
remove = async_track_point_in_utc_time(hass, interval_listener, next_interval()) nonlocal interval_listener_job
remove = async_track_point_in_utc_time(
hass, interval_listener_job, next_interval() # type: ignore
)
hass.async_run_hass_job(job, now) hass.async_run_hass_job(job, now)
remove = async_track_point_in_utc_time(hass, interval_listener, next_interval()) interval_listener_job = HassJob(interval_listener)
remove = async_track_point_in_utc_time(hass, interval_listener_job, next_interval())
def remove_listener() -> None: def remove_listener() -> None:
"""Remove interval listener.""" """Remove interval listener."""
remove() remove() # type: ignore
return remove_listener return remove_listener