diff --git a/tools/simulator.py b/tools/simulator.py index a62def5f7..36066d7d8 100755 --- a/tools/simulator.py +++ b/tools/simulator.py @@ -116,7 +116,10 @@ class MessageStatsCollector(object): self.label = label self.buffer = [] # buffer to store messages during report interval self.series = [] # stats for every report interval - threading.Timer(1.0, self.monitor).start() # schedule in a second + + now = time.time() + diff = int(now) - now + 1 # align start to whole seconds + threading.Timer(diff, self.monitor).start() # schedule in a second def monitor(self): global IS_RUNNING @@ -440,6 +443,11 @@ def send_messages(client_id, client_builder, messages_count, duration): client = client_builder() CLIENTS.append(client) + # align message sending closer to whole seconds + now = time.time() + diff = int(now) - now + 1 + time.sleep(diff) + if duration: with timeutils.StopWatch(duration) as stop_watch: while not stop_watch.expired() and IS_RUNNING: