С каналами вы можете сделать несколько вещей:
A) Создать асинхронные c обработчики на основе ожидающих соединений HTTP / Websocket, которые могут оставаться открытыми в течение длительного времени.
B) отправить сообщения между этими дескрипторами (или из других мест) таким образом, что если обработчик подписан на group
, будет вызван метод для этого экземпляра обработчика соединений.
Чтобы ваши обработчики соединений (потребители говорят Django) Получайте обновления всякий раз, когда вы обновляете БД, вы можете сделать одну из двух вещей.
1) Когда вы пишете в БД, отправляете сообщение на канальном уровне. 2) Когда ваш потребитель подключается, установите Postgres триггер события https://www.postgresql.org/docs/12/event-trigger-definition.html
(2), который позволит вам получать события всякий раз, когда БД обновляется, даже если код, выполняющий обновление, имеет понятия не имею о каналах. (1) с другой стороны, для импорта каналов потребуется весь код, вносящий изменения в базу данных, но это более стандартно.