fix: фиксы и оптимизации #1

Merged
sirmrak merged 1 commits from dev into main 2026-07-24 13:58:23 +03:00
Owner
  • Фикс зависания: async_create_stream() обёрнут в wait_for с таймаутом; вокруг ожидания задачи записи обрабатывается CancelledError; при выключении/force-stop зависшие задачи гасятся в единой точке.
  • Хелперы _is_blocked(), _idle_or_disabled_state(), _force_disable() заменили 5 дублей проверок и два почти идентичных тела set_enabled(False) / _activate_force_stop.
  • Кэш флага _control_should_be_on в управлении устройствами: опрос states.get и вызовы сервисов только при смене логического флага.
  • Магические числа вынесены в константы модуля.
  • В очистке один stat() на файл и dt_util.now() вместо naive-времени.
  • Убрана двойная публикация в set_enabled; атрибут last_motion_time теперь публикуется сразу.
  • Ранний выход из _motion_state_changed при блокировке, чтобы не плодить задачи вхолостую.
- Фикс зависания: `async_create_stream()` обёрнут в `wait_for` с таймаутом; вокруг ожидания задачи записи обрабатывается `CancelledError`; при выключении/force-stop зависшие задачи гасятся в единой точке. - Хелперы `_is_blocked()`, `_idle_or_disabled_state()`, `_force_disable()` заменили 5 дублей проверок и два почти идентичных тела `set_enabled(False)` / `_activate_force_stop`. - Кэш флага `_control_should_be_on` в управлении устройствами: опрос `states.get` и вызовы сервисов только при смене логического флага. - Магические числа вынесены в константы модуля. - В очистке один `stat()` на файл и `dt_util.now()` вместо naive-времени. - Убрана двойная публикация в `set_enabled`; атрибут `last_motion_time` теперь публикуется сразу. - Ранний выход из `_motion_state_changed` при блокировке, чтобы не плодить задачи вхолостую.
sirmrak added 1 commit 2026-07-24 13:58:06 +03:00
- Фикс зависания: `async_create_stream()` обёрнут в `wait_for` с таймаутом; вокруг ожидания задачи записи обрабатывается `CancelledError`; при выключении/force-stop зависшие задачи гасятся в единой точке.
- Хелперы `_is_blocked()`, `_idle_or_disabled_state()`, `_force_disable()` заменили 5 дублей проверок и два почти идентичных тела `set_enabled(False)` / `_activate_force_stop`.
- Кэш флага `_control_should_be_on` в управлении устройствами: опрос `states.get` и вызовы сервисов только при смене логического флага.
- Магические числа вынесены в константы модуля.
- В очистке один `stat()` на файл и `dt_util.now()` вместо naive-времени.
- Убрана двойная публикация в `set_enabled`; атрибут `last_motion_time` теперь публикуется сразу.
- Ранний выход из `_motion_state_changed` при блокировке, чтобы не плодить задачи вхолостую.
sirmrak merged commit 81f176ef2b into main 2026-07-24 13:58:23 +03:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sirmrak/motion_recorder#1