12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python3
- import subprocess
- import time
- import sys
- def next_client(clients):
- if len(clients) == 0:
- return
- c = clients.pop()
- args = ["./random_client.py", str(c)]
- proc = subprocess.Popen(args, stderr=subprocess.DEVNULL)
- proc.cid = c
- return proc
- def run_clients(max_clients):
- clients = list(range(1, max_clients))
- start_time = time.time()
- running_clients = []
- while True:
- print(len(running_clients))
- if len(running_clients) < max_clients:
- c = next_client(clients)
- if c is not None:
- running_clients.append(c)
- else:
- time.sleep(0.1)
- for c in running_clients:
- c.poll()
- if c.returncode is not None:
- running_clients.remove(c)
- clients.append(c.cid)
- c.terminate()
- c.wait()
- env = {}
- env["LD_LIBRARY_PATH"] = "../../lib"
- #broker = subprocess.Popen(["../../src/mosquitto", "-c", "random.conf"], env=env)
- run_clients(1000)
|