У меня есть 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
для каждая функция?