python 高性能http服务器_如何实现Python多进程http服务器

我想要用 python 的 multiprocessing 模块实现一个多进程多线程的 http 服务器,服务器会使用进程池 Pool 创建多个子进程,然后每个子进程再用 socketserver 创建多线程的 http 服务器,但是现在我遇到一个问题,就是服务器运行以后,只有第一个子进程可以处理 http 连接,如何做到让每一个子进程都可以处理连接?

备注:通过 getpid 可以看到每次接受请求的都是同一个子进程

# Python 3

import os, socketserver, signal, sys

from multiprocessing import Pool

class MyTCPHandler(socketserver.BaseRequestHandler):

def handle(self):

self.data = self.request.recv(1024)

respone = b'HTTP/1.1 200 OK\r\n\r\nOK%d' % os.getpid()

self.request.sendall(respone)

def httpd_task():

socketserver.ThreadingTCPServer.allow_reuse_address = True

server = socketserver.ThreadingTCPServer(('0.0.0.0', 80), MyTCPHandler)

try:

server.serve_forever()

except:

pass

server.server_close()

if __name__=='__main__':

p = Pool(4)

for i in range(4):

p.apply_async(httpd_task)

p.close()

p.join()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值