From 3e117195a2c02cb236870222b7d663923015bfca Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Mon, 15 Jan 2018 17:45:13 +0100 Subject: [PATCH] fix: Added a backoff time if an IOError happens --- bin/feeder/pystemon-feeder.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/feeder/pystemon-feeder.py b/bin/feeder/pystemon-feeder.py index d8dbc216..f6e64033 100755 --- a/bin/feeder/pystemon-feeder.py +++ b/bin/feeder/pystemon-feeder.py @@ -42,6 +42,8 @@ else: zmq_url = "tcp://127.0.0.1:5556" pystemonpath = cfg.get("Directories", "pystemonpath") +base_sleeptime = 0.01 +sleep_inc = 0 context = zmq.Context() socket = context.socket(zmq.PUB) @@ -54,7 +56,7 @@ r = redis.StrictRedis(host='localhost', db=10) # 102 raw pastes feed while True: - time.sleep(1) + time.sleep(base_sleeptime + sleep_inc) topic = 101 paste = r.lpop("pastes") if paste is None: @@ -64,5 +66,9 @@ while True: try: messagedata = open(pystemonpath+paste).read() socket.send("%d %s %s" % (topic, paste, base64.b64encode(messagedata))) + sleep_inc = sleep_inc-0.01 if sleep_inc-0.01 > 0 else 0 except IOError as e: + # file not found, could be a buffering issue -> increase sleeping time + print('IOError: Increasing sleep time') + sleep_inc += 0.5 continue