2

我在 Django 中构建了一个 JSON API。我想从外部服务向 Django 发送实时更新以更新模型。

我真的在寻找有关使用当前/即将到来/活动的框架和工具设计系统的最佳方法的见解。我的想法是使用下面描述的 node.js/Django/Foreman:

  1. 现有的 Django JSON API
  2. 一个 node.js 应用程序,通过 Foreman 运行,订阅了一些外部频道。
  3. 该通道向节点发送 JSON 消息
  4. Node 使用消息并将HTTP POSTJSON 生成到我的 Django API 中的 URL。
  5. Django API 使用 JSON 消息在 Django 应用程序中更新模型。

现在,似乎我应该能够从这个等式中消除 node.js,并拥有一个“离家更近一点”的服务,家是 Django 应用程序,而不必跨越 HTTP。

问题是:我现在有一个有效的解决方案吗,有没有更好的做事方式?

4

1 回答 1

1

您需要如何订阅其他服务?如果其他服务直接调用您的 URL 之一,只需让 Django 在那里听。

如果其他服务需要您的一方充当服务器(非网络服务器,例如在某个非网络端口上连接到您),您将需要让服务器在那里运行,但同样我不会使用 Node,而是编写一个简单的 Python 服务器(可能使用 asynccore 模块),您可以通过 foreman+manage.py 启动它并且可以直接访问模型,例如不需要将数据编组到 json 中以将其发送到 Django。

如果您通过简单的 tcp 连接连接到其他服务,我仍然会采用上述非节点方法。

PS:不要太在意效率——在开发过度设计的解决方案之前,让您的系统尽可能简单。

于 2012-04-20T18:10:16.260 回答