首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为同时使用水瓶和金刚的用户提供服务。

为同时使用水瓶和金刚的用户提供服务。
EN

Stack Overflow用户
提问于 2017-08-22 16:19:14
回答 1查看 2.1K关注 0票数 1

我用的是火奴制服务器后面的烧瓶应用程序。我希望我的应用程序可以同时处理请求。为了测试这个目的,我编写了一个小测试:

代码语言:javascript
复制
 @app.route('/test', methods=['GET'])
 def get_tasks_test():
     time.sleep(10)
     return jsonify({'test is working'})

我一开始是:

gunicorn应用程序:app localhost:8000 -重新加载-工人-连接100 -工人级gevent

现在我同时发送一些并发请求,并期望服务器在大约10秒内对所有请求做出响应(因为我设置了睡眠),但是,服务器似乎在每个请求之间等待10秒,这在我看来驳斥了并发性。我说的对吗?如何使服务器处理并发性?

EN

回答 1

Stack Overflow用户

发布于 2017-08-23 03:01:01

我不认为--worker-connections是你想要的。它使用的是被time.sleep(10)阻塞的gevent。

相反,您需要的是--workers 4,它将打开4个工作进程。这将使您能够同时处理4项请求。我不会把它写成100,就像你对员工连接那样,而一般的经验法则是2-4x the number of processor cores。因此,如果您有一个启用超线程的四核机器,您可以执行32工作。

最后,您可以传递--threads 4,让每个进程打开4个线程来处理请求。要小心,不要创建太多线程的进程。这不是一个无限的资源。

参考文献

http://docs.gunicorn.org/en/latest/settings.html?highlight=--worker-connections#workers

http://docs.gunicorn.org/en/stable/design.html#choosing-a-worker-type

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45822670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档