2017-12-27 31 views
0

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’)) 

答えて

1

メソッドの定義を変更して、シグネチャを以下のように呼び出すことで実現できます。

# 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") 
関連する問題