Pass parameters to schedule
In general with this kind of thing you can always do this:
schedule.every(10).minutes.do(lambda: job('Hello ', 'world!'))
Looking at the source:
def do(self, job_func, *args, **kwargs):
"""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
"""
self.job_func = functools.partial(job_func, *args, **kwargs)
We see that you can also do this:
schedule.every(10).minutes.do(job, 'Hello ', 'world!')
Or, as the code suggests, an alternative to the generic lambda
method is:
schedule.every(10).minutes.do(functools.partial(job, 'Hello ', 'world!'))
schedule.every(10).minutes.do(job, 'do something', 'like this')
My friend tried the above syntax but it didn't work, so if it does not work you can use
schedule.every(10).minutes.do(job('do something', 'like this'))
His schedule statement was not like this exactly it was like this -
schedule.every().monday.at('8:30')do(job('It was', 'like this'))