Python循环使用Flask Socket.I进行分析服务

2024-04-25 09:40:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我很好奇,在我目前的状态下,如何更好地解决以下问题。在

我建议采用以下架构:

建筑

我们的想法是通过运行Flask来使用多线程来完成这个任务插座.IO在一个线程中,并且在另一个线程中有一个while循环,该线程可以按需向所有连接的客户端发出。在

project

  • main.py
  • analyze.py
  • webapp.py

analyze.py

实际的程序每隔几秒钟就会从一个文件中抓取一些东西,如果有什么东西改变了,它就会分析它的内容,结果就会被推送过去插座.IO所有的客户。在

import webapp


def analyze():
    while True:
        message_object = analyzeStuff()
        webapp.send_message(message_object)

webapp.py

这里我们实现了实际的烧瓶插座.IO端点。为了简单起见,下面是我这边的一个小快照:

^{pr2}$

main.py

在主线程中,我们打开插座.IO线程,然后我们运行我们的分析。在

我使用eventlet.monkey_patch()(尽管我不确定它到底做了什么)来从另一个线程调用{},而不是使用插座.IO服务器。在

import analyze
import webapp
import threading

import eventlet
eventlet.monkey_patch()


if __name__ == '__main__':

    # Start the server
    webapp_thread = threading.Thread(target=run_web_app)
    webapp_thread.start()

    # Run the Analyze loop
    analyze.analyze()

目前的状态运行良好,困难,我目前有一些问题,以适应这个Apache2WSGi模式的服务器,我目前正在工作。在

尽管如此,这看起来很难看,我不能停止思考应该有更好的方法来做这件事。有什么建议吗?在


Tags: pyioimportmessageobjectmain状态线程

热门问题