Пример #1
0
 def wrapper(*args, **kwargs):
     LOGGER.info('timer started: for %(func)s to run every %(crontab_expression)s', {
         'func': func,
         'crontab_expression': self.crontab_expression
     })
     while True:
         now = get_current_timestamp()
         next = croniter(self.crontab_expression, now).get_next()
         delta = next - now
         LOGGER.info('timer sleep: wake up after %(delta)s seconds', {
             'delta': delta
         })
         time.sleep(delta)
         LOGGER.info('timer woke up')
         before = time.time()
         try:
             func(*args, **kwargs)
         finally:
             after = time.time()
             LOGGER.info('timer work done: in %(elapsed_time)s seconds', {
                 'elapsed_time': after - before
             })
Пример #2
0
 def get_next_timestamp(self, now=None):
     now = now or get_current_timestamp()
     return croniter(self.crontab_expression, now).get_next(ret_type=float)
Пример #3
0
 def get_next_timestamp(self, now=None):
     now = now or get_current_timestamp()
     return now + self.seconds