我想知道是否有人可以帮助我在使用schedule库调用作业函数时如何传递参数。我在使用线程和run_threaded函数时看到有相同的例子,但没有任何内容。
在下面的代码片段中,我试图将'sample_input'作为参数传递,并且混淆了如何定义此参数。
def run_threaded(job_func):
job_thread = threading.Thread(target=job_func)
job_thread.start()
@with_logging
def job(input_name):
print("I'm running on thread %s" % threading.current_thread())
main(input_name)
schedule.every(10).seconds.do(run_threaded, job(‘sample_input’))
答案 0 :(得分:2)
您可以通过更改方法定义并将签名调用到下面的类似内容。
# run_threaded method accepts arguments of job_func
def run_threaded(job_func, *args, **kwargs):
print "======", args, kwargs
job_thread = threading.Thread(target=job_func, args=args, kwargs=kwargs)
job_thread.start()
# Invoke the arguments while scheduling.
schedule.every(10).seconds.do(run_threaded, job, "sample_input")