#!/usr/bin/python2.7 # -*- coding: utf-8 -*- import time import exceptions def func(): # a,b = None 1/0 time.sleep(1) print 'func done ' count = 0 start_t = None success = False while True: try: if not start_t: start_t = int(round(time.time() * 1000)) # Millisecond func() success = True except TypeError as e: print '{} type err'.format(time.time()) if 3 == count: success = True continue if count < 3: count += 1 time.sleep(1) except exceptions.Exception as e: print "other" success = True finally: if success: end_t = int(round(time.time() * 1000)) # Millisecond run_t = format(float(end_t-start_t)/1000,'.3f') sleep_t = 10-float(run_t) print 'START: {}, END: {}, Runtime: {}'.format(start_t,end_t,run_t) print 'Need to sleep : {} seconds '.format(sleep_t) count = 0 start_t = None success = False time.sleep(sleep_t)