在Python.SocketServer.TCPServer中,request_queue_size过长是否危险?

4 投票
1 回答
1221 浏览
提问于 2025-04-17 18:15

我打算运行一个小服务器,继承自 Python.SocketServer.TCPServer。如果代码运行得太慢,我可以让它支持多线程,或者只是增加请求队列的大小,这样运行起来会稍微慢一点。请问把请求队列大小设置得很大(比如几千)有没有什么危险?我程序中最重要的一点就是不能丢失任何数据。

1 个回答

3

根据你的操作系统,request_queue_size的最大值是128(这是Linux和Mac OS X上的默认最大值,至少是这样)。如果你设置更高的值,系统不会报错,但会默默地把它限制在128。

我觉得设置更高的值不一定会有问题,不过我建议你认真考虑使用一些线程处理的方式(或者,如果合适的话,可以用gevent之类的异步解决方案)。SocketServer模块提供了一些工具,可以帮助你创建支持多线程或分叉的socket服务器。

撰写回答