From dde6cc729b2a32fc0201e9a124827e4bd7e6ca99 Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 5 Jan 2018 09:36:28 -0200 Subject: Add multiprocess test files. --- blob-multiprocess/multiproc.py | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 blob-multiprocess/multiproc.py (limited to 'blob-multiprocess/multiproc.py') diff --git a/blob-multiprocess/multiproc.py b/blob-multiprocess/multiproc.py new file mode 100644 index 0000000..c367e04 --- /dev/null +++ b/blob-multiprocess/multiproc.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python + +from argparse import ArgumentParser +from twisted.internet import reactor +from twisted.internet.protocol import ProcessProtocol +from twisted.python.failure import Failure + + +class BlobsServerProtocol(ProcessProtocol): + + def outReceived(self, data): + if not isinstance(data, Failure): + data = data.strip() + if data: + print(data) + + def errorReceived(self, data): + if not isinstance(data, Failure): + data = data.strip() + if data: + print(data) + + def processEnded(self, data): + if not isinstance(data, Failure): + data = data.strip() + if data: + print(data) + + # def processExited(self, data): + # print(data) + + +def parse_args(): + parser = ArgumentParser() + parser.add_argument('--procs', type=int, default=4, + help="the number of processes to spawn") + args = parser.parse_args() + return args + + +def spawn_servers(procs): + protocol = BlobsServerProtocol() + children = [] + python = '/home/drebs/.virtualenvs/apps/bin/python' + for port in range(8001, 8001 + procs): + args = [python, './blobs-server.py', '/tmp/blobs', str(port)] + child = reactor.spawnProcess(protocol, python, args) + children.append(child) + + +def main(): + args = parse_args() + spawn_servers(args.procs) + reactor.run() + + +if __name__ == "__main__": + main() -- cgit v1.2.3