diff --git a/src/opengnsys/workers/oglive_worker.py b/src/opengnsys/workers/oglive_worker.py index 6e955c9..04ac130 100644 --- a/src/opengnsys/workers/oglive_worker.py +++ b/src/opengnsys/workers/oglive_worker.py @@ -292,6 +292,7 @@ class ogLiveWorker(ServerWorker): pass sout = serr = '' + poll_iterations = 1 while p.poll() is None: for l in iter (p.stdout.readline, b''): partial = l.decode ('utf-8', 'ignore') @@ -300,7 +301,13 @@ class ogLiveWorker(ServerWorker): for l in iter (p.stderr.readline, b''): partial = l.decode ('utf-8', 'ignore') serr += partial - time.sleep (1) + + ## poll quickly at first, then poll less frequently + if poll_iterations > 15: sleep_time = 1 + elif poll_iterations > 10: sleep_time = 0.2 + else: sleep_time = 0.1 + time.sleep (sleep_time) + poll_iterations += 1 sout = sout.strip() serr = serr.strip()