Skip to content
Snippets Groups Projects

feat/reportservice

Merged Karim Ahmed requested to merge feat/reportservice into master
3 files
+ 32
29
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -23,23 +23,17 @@ async def auto_run():
# list of timestamps for the report service runs
run_time = cfg['GLOBAL']['run-on']
# Begin-for-loop to parse the run time-stamps
for i, ti in enumerate(run_time):
run_time[i] = parser.parse(ti)
# End-for-loop
# Begin-while-loop
while True:
time_now = datetime.utcnow().replace(tzinfo=tz.tzutc())
sched_time = run_time[tidx]
# Begin-IF no-timezone, use UTC
if sched_time.tzinfo is None:
sched_time = sched_time.replace(tzinfo=tz.tzutc())
# End-IF
# Begin-IF a run-timestamp passed,
# do automatic-run.
if time_now > sched_time:
con = zmq.asyncio.Context()
@@ -55,19 +49,38 @@ async def auto_run():
run_time[tidx] = sched_time + timedelta(weeks=1)
tidx = tidx + 1 if tidx != len(run_time)-1 else 0
# End-IF
# check every 10mins, if there is
# a need for an automatic-run.
await asyncio.sleep(600)
# End-while-loop
logfile = './cal.log'
logging.basicConfig(filename=logfile, filemode='a+',
level=logging.INFO,
format='%(levelname)-6s: %(asctime)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
loop = asyncio.get_event_loop()
loop.run_until_complete(auto_run())
loop.close()
parser = argparse.ArgumentParser(description='Start the report service')
parser.add_argument('--config-file', type=str, default='./cal_conf.yaml')
parser.add_argument('--log-file', type=str, default='./report.log')
parser.add_argument('--logging', type=str, default="INFO",
choices=['INFO', 'DEBUG', 'ERROR'])
if __name__ == "__main__":
args = vars(parser.parse_args())
conf_file = args["config_file"]
with open(conf_file, "r") as f:
config = yaml.load(f.read())
logfile = args["log_file"]
fmt = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
logging.basicConfig(filename=logfile, filemode='a+',
level=getattr(logging, args['logging']),
format='%(levelname)-6s: %(asctime)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
logfile = './report.log'
logging.basicConfig(filename=logfile, filemode='a+',
level=logging.INFO,
format='%(levelname)-6s: %(asctime)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
loop = asyncio.get_event_loop()
loop.run_until_complete(auto_run())
loop.close()
Loading