如何使Flask应用进行多处理?

时间:2018-07-20 03:37:17

标签: python flask multiprocessing webserver

这是我的代码

class Time :
@app.route('/time', methods = ['GET'])
def get() :     
    start = time.time()
    for i in range(30000) :
        for j in range(30000) :
            pass
    return str(time.time() - start)

我尝试了很多工具来解决它,例如龙卷风,枪杀和python的多线程和多处理,但是都失败了。一旦我打开Web本地主机:5000 /次,我同时打开两个Web的时间是比我开网两次要慢得多。

我认为,如果我完成了多重处理,时间应该是一半。

编辑:

此代码用于通过龙卷风构建一个多处理应用程序

if __name__ == "__main__" :
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)
IOLoop.instance().start()

如果我打开一个网两次,则将花费23s,但是如果我同时打开两个网,则将花费26s。我希望它能花费11秒,等于我打开一个网。

1 个答案:

答案 0 :(得分:0)

你有点困惑。

Gunicorn用于以更有效的方式构建动态API,通常应将其与nginx结合使用以真正提高效率。即Gunicorn用于构建动态API,而Nginx用于重新分配静态API。

您可以在此处阅读更多详细信息 https://serverfault.com/questions/331256/why-do-i-need-nginx-and-something-like-gunicorn

此处正在运行Gunicorn设置:

spring:
  data:
    cassandra:
      keyspaceName: quangkeyspace
      contactPoints: localhost
      port: 9042
      schemaAction: CREATE_IF_NOT_EXISTS