【问题标题】:Python Embed Web Server in Data Processing NodePython 在数据处理节点中嵌入 Web 服务器
【发布时间】:2015-06-03 04:28:06
【问题描述】:

我正在开发一个带有简单事件循环的 Python 2.7 项目,该循环检查各种数据源(rabbitmq、mongodb、postgres 等)的新数据、处理数据并将数据写入下一阶段。

我想在应用程序中嵌入一个 Web 服务器,以便它可以接收简单的 REST 命令,用于关闭、诊断等。

但是,通过阅读有关可用 Web 服务器的文档,并不清楚它们是否允许上述事件循环在 Web 服务器的事件循环之外运行。 IE。看起来我必须做一些事情,比如使用 REST 调用启动事件循环,并让循环在 io 线程或类似线程上运行。

谁能解释一下哪种嵌入式服务器(cherrypy、bottle、flask 等)/并发框架(tornado、gevent、twisted 等)最适合这个问题?

提前谢谢你!

【问题讨论】:

    标签: python python-2.7 flask tornado bottle


    【解决方案1】:

    我建议您为您的应用程序使用一个单独的进程,该进程将接收 REST 命令(使用 Pyramid 或 Flask),并让它通过 RabbitMQ 将消息发送到实时部分。我喜欢 Kombu 本人与 RabbitMQ 的接口,并且您的消息总线将很好地将您的 web/rest 需求与事件驱动的需求分离。您的事件驱动部分只是从总线上获取消息,并且不需要了解任何有关 REST 的信息。

    【讨论】:

    • 有趣。我不确定这会比仅使用 RabbitMQ 发送命令更好。你可以解释吗?谢谢
    猜你喜欢
    • 2016-03-29
    • 1970-01-01
    • 2015-01-30
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 2019-11-25
    • 2010-10-31
    相关资源
    最近更新 更多