小编Älh*_*hoo的帖子

多处理 python-server 创建太多临时目录

我正在尝试在 python3.3 中实现一个服务器,该服务器预加载了一个单独的线程来对传入连接进行所有处理。

from multiprocessing import Process, Pipe, Queue
from multiprocessing.reduction import reduce_socket
import time
import socketserver,socket


def process(q):
    while 1:
        fn,args = q.get()
        conn = fn(*args)

        while conn.recv(1, socket.MSG_PEEK):
            buf = conn.recv(100)
            if not buf: break
            conn.send(b"Got it: ")
            conn.send(buf)

        conn.close()

class MyHandler(socketserver.BaseRequestHandler):
    def handle(self):
        print("Opening connection")
        print("Processing")
        self.server.q.put(reduce_socket(self.request))
        while self.request.recv(1, socket.MSG_PEEK):
            time.sleep(1)
        print("Closing connection")

class MyServer(socketserver.ForkingTCPServer):
    p = Process
    q = Queue()
    parent_conn,child_conn = Pipe()
    def __init__(self,server_address,handler):
        socketserver.ForkingTCPServer.__init__(self,server_address, handler)
        self.p = Process(target=process,args=(self.q,))
        self.p.start()
    def __del__(self):
        self.p.join()


server_address = …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

5
推荐指数
1
解决办法
5122
查看次数

标签 统计

multiprocessing ×1

python ×1