托管在不同服务器上的两个Python应用程序如何通信?

Dev012

我很难弄清楚如何通过一个小项目来解决问题。

基本上我有一个Django应用程序。另一方面,我正在运行一个外部Python脚本。我想创建一个系统,每次提交Django应用程序中的表单时,将表单中提交的数据发送到外部Python应用程序。

外部Python服务应该接收数据,读取数据,并根据用户是谁以及他提交了什么内容,它应该执行一些任务,然后发送响应。

这是我的想法:1)将外部Python应用程序连接到Django使用的同一数据库。这样,当提交表单时,它将保存在数据库中,并且可以与第二个Python服务“共享”数据。该解决方案的问题在于,我将需要第二个应用程序每秒查询一次数据库并执行很多查询,这将是性能问题。2)创建一个Epi端点,以便外部python应用程序将连接到该端点并从那里获取保存在数据库中的数据。问题与第一个解决方案相同。在这种情况下,Redis或RabbitMQ这样的服务会有所帮助吗?

在我的Django应用程序中导入外部Python进程不是解决方案,它需要与Django应用程序分开。一个重要的要求是速度。提交新数据后,第二个Python应用程序需要在尽可能短的时间内接收到新数据。

就是说,我很乐意提供任何建议或可能的解决方案来解决这个问题,在此先感谢:)

费利佩

您可以使用微服务架构来构建它。与其在两个应用程序之间共享数据库,不如让它们通过Web请求相互通信。Django会使用相关数据向您的其他应用发出请求,其他服务器将以结果进行回复。

通常,人们会使用Flask(同步服务器)或Sanic(异步服务器)之类的东西来接收/回复,但是您也可以查看类似之类的东西Nameko最终,我们还将建议您研究Docker,因为您将设置更多此类微服务,因此将需要它。


这个想法是(即使用Flask)创建一个访问点,该访问点对您的数据进行一些计算并将其返回给Django服务器。

computation.py
from flask import Flask
from flask import request

app = Flask(__name__)

@app.route("/", methods=["POST"])
def computation():
    data = request.get_json()
    print(data)

    return f"Hey! {data}"

app.run(host="0.0.0.0", port=8090)

Django服务器只是向您的服务器应用程序发送请求。

django_mock.py
import requests

req = requests.post('http://0.0.0.0:8090/', json={"data": "Hello"})
print(req.text)

上面的内容将在computation.py应用程序中打印出来

{'data': 'Hello'}

并打印出django_mock.py示例:

Hey! {'data': 'Hello'}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在不同服务器上运行的两个Java Web应用程序之间传输数据的最佳方法

来自分类Dev

两个不同服务器上的 Angular2 和 WebAPI 应用程序之间的 CORS 问题

来自分类Dev

如何为两个具有不同Ruby版本的Rails应用程序创建服务器设置?

来自分类Dev

如何在同一服务器上运行两个spring boot应用程序?

来自分类Dev

同一Tomcat服务器上的两个应用程序之间的双向SSL

来自分类Dev

带有URI的Apache服务器上的两个应用程序

来自分类Dev

将应用程序部署到具有不同production.rb内容的两个不同服务器上

来自分类Dev

通过相同的用户在同一Linux服务器上为不同的应用程序运行两个版本的Java

来自分类Dev

我如何在不同的服务器上有2个可互相通信的Node应用程序?

来自分类Dev

我如何在不同的服务器上有2个可互相通信的Node应用程序?

来自分类Dev

在共享主机上托管在Laravel 4上运行的两个不同的应用程序

来自分类Dev

在终端服务上运行的两个.Net应用程序之间进行通信

来自分类Dev

使用python的两个不同的远程服务器通信

来自分类Dev

Web应用程序如何与服务器通信?

来自分类Dev

如何在两个专用托管服务器上设置Juju(MAAS / OpenStack)?

来自分类Dev

同一表,两个应用程序的通知中心和服务器

来自分类Dev

两个Java应用程序如何在EC2上的两个实例上进行通信?

来自分类Dev

在两个不同的服务器上分析mysql

来自分类Dev

使用jdk10两个容器 - 如何成功地从dockerized Tomee服务器上运行的应用程序连接到Dockerized DB2数据库/服务器?

来自分类Dev

Web应用程序和数据库可以托管在不同的服务器(远程和本地)上吗?

来自分类Dev

如何将Sidekiq与redis一起放置在与应用程序服务器不同的服务器上?

来自分类Dev

Python mysqlclient 和两个不同服务器上的数据

来自分类Dev

在托管在云上的Laravel应用程序上配置缓存服务器

来自分类Dev

在托管在云上的Laravel应用程序上配置缓存服务器

来自分类Dev

如何使用heroku在同一域上运行两个不同的应用程序

来自分类Dev

在不同的服务器上托管表示层和应用程序层

来自分类Dev

在两个不同的服务器上托管插件和主题

来自分类Dev

AngularJS服务注入了两个不同的应用程序模块,两个应用程序

来自分类Dev

无法在同一服务器上的两个分离的CakePHP应用程序上进行身份验证

Related 相关文章

  1. 1

    在不同服务器上运行的两个Java Web应用程序之间传输数据的最佳方法

  2. 2

    两个不同服务器上的 Angular2 和 WebAPI 应用程序之间的 CORS 问题

  3. 3

    如何为两个具有不同Ruby版本的Rails应用程序创建服务器设置?

  4. 4

    如何在同一服务器上运行两个spring boot应用程序?

  5. 5

    同一Tomcat服务器上的两个应用程序之间的双向SSL

  6. 6

    带有URI的Apache服务器上的两个应用程序

  7. 7

    将应用程序部署到具有不同production.rb内容的两个不同服务器上

  8. 8

    通过相同的用户在同一Linux服务器上为不同的应用程序运行两个版本的Java

  9. 9

    我如何在不同的服务器上有2个可互相通信的Node应用程序?

  10. 10

    我如何在不同的服务器上有2个可互相通信的Node应用程序?

  11. 11

    在共享主机上托管在Laravel 4上运行的两个不同的应用程序

  12. 12

    在终端服务上运行的两个.Net应用程序之间进行通信

  13. 13

    使用python的两个不同的远程服务器通信

  14. 14

    Web应用程序如何与服务器通信?

  15. 15

    如何在两个专用托管服务器上设置Juju(MAAS / OpenStack)?

  16. 16

    同一表,两个应用程序的通知中心和服务器

  17. 17

    两个Java应用程序如何在EC2上的两个实例上进行通信?

  18. 18

    在两个不同的服务器上分析mysql

  19. 19

    使用jdk10两个容器 - 如何成功地从dockerized Tomee服务器上运行的应用程序连接到Dockerized DB2数据库/服务器?

  20. 20

    Web应用程序和数据库可以托管在不同的服务器(远程和本地)上吗?

  21. 21

    如何将Sidekiq与redis一起放置在与应用程序服务器不同的服务器上?

  22. 22

    Python mysqlclient 和两个不同服务器上的数据

  23. 23

    在托管在云上的Laravel应用程序上配置缓存服务器

  24. 24

    在托管在云上的Laravel应用程序上配置缓存服务器

  25. 25

    如何使用heroku在同一域上运行两个不同的应用程序

  26. 26

    在不同的服务器上托管表示层和应用程序层

  27. 27

    在两个不同的服务器上托管插件和主题

  28. 28

    AngularJS服务注入了两个不同的应用程序模块,两个应用程序

  29. 29

    无法在同一服务器上的两个分离的CakePHP应用程序上进行身份验证

热门标签

归档