django - 如何在我的 python django 服务器中使用全局/模块级别的 ThreadPoolExecutor?
问题描述
所以这就是我想要的代码设置。我正在使用python2。我在这里寻找注意事项。并知道我是否做得对。也是另一种解决方案。
我正在尝试这个,因为我的 pod 在以 100 rps 左右进行负载测试时会很快崩溃。通过分析,我看到每个请求都创建了太多线程。
这个设置我仍然遇到的一个问题是,它确实会在超时后关闭空闲线程,而在应用程序空闲时只保留少数线程。
pool = ThreadPoolExecutor(100)
def function_a():
output = Queue()
fs = []
for _ in range(5):
fs.append(pool.submit(do_five_db_calls, output))
pool.wait(fs)
def function_b():
output = Queue()
fs = []
for _ in range(5):
fs.append(pool.submit(do_five_elastic_calls, output))
pool.wait(fs)
def function_c():
output = Queue()
fs = []
for _ in range(5):
fs.append(pool.submit(do_five_io_calls, output))
pool.wait(fs)```
解决方案
推荐阅读
- javascript - NodeJS 从另一个窗口获取像素颜色
- instagram - 如何从 instagram 嵌入帖子中获取个人资料图片 URL?
- java - 运行最新的 Jetty 版本会破坏我的构建
- mongodb - Docker 构建失败并显示“包 'mongodb' 没有安装候选者”
- javascript - 无论如何设置一个变量等于每次访问变量时调用的函数
- node.js - 为什么我收到的 jwt 格式错误?
- android - 如何从另一个类访问字符串变量?
- python - 使用 self 设置类变量值。与类名
- php - COUNT(*) 最大函数嵌套级别
- cordova - 使用 Ionic 4 和 Cordova 的 Google Plus 登录不起作用