mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Run coroutines as eager tasks in async_run_hass_job (#111683)
* Run coroutines as eager tasks in async_run_hass_job
Note that this does not change async_add_hass_job
Do not merge this. For test run only
* Phase out periodic tasks
* false by default or some tests will block forever, will need to fix each one manually
* kwarg works
* kwarg works
* kwarg works
* fixes
* fix more tests
* fix more tests
* fix lifx
* opensky
* pvpc_hourly_pricing
* adjust more
* adjust more
* smarttub
* adjust more
* adjust more
* adjust more
* adjust more
* adjust
* no eager executor
* zha
* qnap_qsw
* fix more
* fix fix
* docs
* its a wrapper now
* add more coverage
* coverage
* cover all combos
* more fixes
* more fixes
* more fixes
* remaining issues are legit bugs in tests
* make tplink test more predictable
* more fixes
* feedreader
* grind out some more
* make test race safe
* limit first scope to triggers
* one more
* Start tasks eagerly in for async_at_start(ed)
A few of these can avoid being scheduled on the loop
during startup
* fix cloud
* Revert "fix cloud"
This reverts commit 5eb3ce695d.
* fix test to do what start does
* flip flag
* flip flag
* Fix here_travel_time creating many refresh requests at startup
- Each entity would try to refresh the coordinator which
created many tasks. Move the refresh to a single
async_at_started
- The tests fired the EVENT_HOMEASSISTANT_START event
but the code used async_at_started which only worked
because the tests did not set CoreState to not_running
* fix azure
* remove kw
* remove kw
* rip
* cover
* more rips
* more rips
* more rips
This commit is contained in:
@@ -969,9 +969,9 @@ async def _handle_entity_call(
|
||||
partial(getattr(entity, func), **data), # type: ignore[arg-type]
|
||||
job_type=entity.get_hassjob_type(func),
|
||||
)
|
||||
task = hass.async_run_hass_job(job, eager_start=True)
|
||||
task = hass.async_run_hass_job(job)
|
||||
else:
|
||||
task = hass.async_run_hass_job(func, entity, data, eager_start=True)
|
||||
task = hass.async_run_hass_job(func, entity, data)
|
||||
|
||||
# Guard because callback functions do not return a task when passed to
|
||||
# async_run_job.
|
||||
@@ -1006,7 +1006,7 @@ async def _async_admin_handler(
|
||||
if not user.is_admin:
|
||||
raise Unauthorized(context=call.context)
|
||||
|
||||
result = hass.async_run_hass_job(service_job, call, eager_start=True)
|
||||
result = hass.async_run_hass_job(service_job, call)
|
||||
if result is not None:
|
||||
await result
|
||||
|
||||
|
||||
Reference in New Issue
Block a user