【问题标题】:Django Mealtime server listenerDjango Mealtime 服务器监听器
【发布时间】:2020-01-28 12:50:49
【问题描述】:
我很擅长 django。我有 postgresql 和一些表,这个表由 C++ apps 填充。现在我想构建 django 应用程序以在数据库中发生任何更改时实时可视化,它应该在我的 django 前端实时更新。
我不知道要拍什么技术,我听说过django-channel,但不太确定我是否可以用它。
本帖目的是获取技术推荐建议。
任何人都可以在这种情况下提供帮助吗?
【问题讨论】:
标签:
django
postgresql
django-channels
django-redis
【解决方案1】:
通过频道你可以做一些事情:
A) 创建可以长时间保持打开状态的基于异步等待的 HTTP/Websocket 连接处理程序。
B) 在这些句柄之间(或从其他地方)发送消息,如果处理程序订阅了group,则将调用该连接处理程序实例上的方法。
要让您的连接处理程序(Django 中的消费者)在更新数据库时获取更新,您可以执行以下两件事之一。
1) 当您写入数据库时,通过通道层发送消息。
2)当你的消费者连接时,设置一个 Postgres 事件触发器https://www.postgresql.org/docs/12/event-trigger-definition.html
(2) 将让您在数据库更新时获取事件,即使执行更新的代码不知道通道。 (1) 另一方面,将需要对数据库进行更改的所有代码来导入频道,但它更标准。