在Python.SocketServer.TCPServer中,request_queue_size过长是否危险?
我打算运行一个小服务器,继承自 Python.SocketServer.TCPServer
。如果代码运行得太慢,我可以让它支持多线程,或者只是增加请求队列的大小,这样运行起来会稍微慢一点。请问把请求队列大小设置得很大(比如几千)有没有什么危险?我程序中最重要的一点就是不能丢失任何数据。
1 个回答
3
根据你的操作系统,request_queue_size
的最大值是128(这是Linux和Mac OS X上的默认最大值,至少是这样)。如果你设置更高的值,系统不会报错,但会默默地把它限制在128。
我觉得设置更高的值不一定会有问题,不过我建议你认真考虑使用一些线程处理的方式(或者,如果合适的话,可以用gevent
之类的异步解决方案)。SocketServer
模块提供了一些工具,可以帮助你创建支持多线程或分叉的socket服务器。