'Run the job and immediately reschedule it.
:return: The return value returned by the `job_func`'

def run(self):

    logger.info('Running    job    %s', self)
    ret = self.job_func()
    self.last_run = datetime.datetime.now()
    self._schedule_next_run()
    return ret
