【问题标题】: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) 另一方面,将需要对数据库进行更改的所有代码来导入频道,但它更标准。

    【讨论】: