【发布时间】:2020-06-16 01:09:33
【问题描述】:
我有一个基于 Python 的 SimpleXMLRPCServer,类似于:
from multiprocessing import Process
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
import SocketServer
class RPCThreading(SocketServer.ThreadingMixIn, SimpleXMLRPCServer):
pass
# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/RPC2',)
def main():
server = RPCThreading(('127.0.0.1', 8000), requestHandler=RequestHandler)
server.register_function(tester1)
server.register_function(tester2)
print("Server running...")
server.serve_forever()
def tester1(id):
p = Process(target=my_func1, args=(id,))
p.start()
return True
def tester2(id):
p = Process(target=my_func2, args=(id,))
p.start()
return True
我想实现一种方法来跟踪当前正在为 tester1 和 tester2 执行的并发进程数量,如果它们仍在执行的数量超过最大(用户定义的)数量,则排队每个新请求并在数量低于阈值时执行。
也许每个函数都有一个共享的Pool?
【问题讨论】:
标签: python multithreading python-multithreading xml-rpc simplexmlrpcserver