'Specifies the job_func that should be called every time the
job runs.
Any additional arguments are passed on to job_func when
the job runs.
:param job_func: The function to be scheduled
:return: The invoked job instance'

def do(self, job_func, *args, **kwargs):

    self.job_func = functools.partial(job_func, *args, **kwargs)
    try:
        functools.update_wrapper(self.job_func, job_func)
    except AttributeError:
        pass
    self._schedule_next_run()
    self.scheduler.jobs.append(self)
    return self
