leaky-bucket/poc/py-ratio1024-log2/testdata/rand_0_13_stream.py

34 lines
1.0 KiB
Python

import time
import random
from sys import stdout
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-b-min", type=int, help="burst minimum", default=1)
ap.add_argument("-b-max", type=int, help="burst maximum", default=20)
ap.add_argument("-d-min", type=int, help="sleep minimum ms", default=0)
ap.add_argument("-d-max", type=int, help="sleep maximum ms", default=3000)
ap.add_argument("-between", type=int, help="between maximum ms", default=1000)
args = ap.parse_args()
random.seed(int(1000*time.time()))
def new_burst():
return random.randint(args.b_min, args.b_max)
def new_between():
return random.randint(0, args.between) / 1000.0
def new_delay():
return random.randint(args.d_min, args.d_max) / 1000.0
with open("testdata/rand_0_13.txt", "r") as f:
burst = new_burst()
for line in f.readlines():
if burst:
print(line.strip(), file=stdout)
stdout.flush()
time.sleep(new_between())
burst -= 1
if not burst:
time.sleep(new_delay())
burst = new_burst()