Simulator: align stats to whole seconds

Aligning message sending and stats collection to whole seconds.
This allows to merge data from client and server - useful
for visualization of message flow.

Change-Id: I507c021d851254d4d84e8922de687931f8545864
This commit is contained in:
Ilya Shakhat 2016-03-22 11:44:06 +03:00
parent 5ad18f73c5
commit 782ab770cf

View File

@ -112,7 +112,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):
threading.Timer(1.0, self.monitor).start()
@ -423,6 +426,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():