blitz_api/app/apps/tasks_impl
fusion44 a9bbc9a27c
Some checks failed
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
fix(api): release Redis connections in channel listeners/notifiers
BaseChannelListener.listen() only called pubsub.unsubscribe() in its
finally block: the pubsub connection and the listener's own Redis client
were never released, leaking a connection for every install/uninstall
(_watcher) and every recreation of the app-status listener. The Celery
task notifiers were likewise never closed, and used the deprecated
Redis.close() instead of aclose().

- add aclose() to BaseChannelNotifier and BaseChannelListener
- listen() now closes the pubsub and its Redis client in finally
- close the notifiers in the app_manage / app_status_update tasks and
  switch to aclose()
- back off in the app-status watch loop so a Redis outage no longer
  spins, and drop a leftover debug print

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 22:40:14 +02:00
..
__init__.py feat: implement (un)install celery task 2025-05-06 09:16:46 +02:00
app_manage.py fix(api): release Redis connections in channel listeners/notifiers 2026-07-03 22:40:14 +02:00
app_status_update.py fix(api): release Redis connections in channel listeners/notifiers 2026-07-03 22:40:14 +02:00
listeners.py fix: don't stop app status listener 2025-05-06 09:16:46 +02:00