首页 > 解决方案 > 如何在我的 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)```

标签: djangopython-2.7concurrencyuwsgithreadpoolexecutor

解决方案


推荐阅读