2017-12-27 16 views
0

Ich frage mich, ob jemand mir helfen kann, wie man das Argument beim Aufruf der Job-Funktion mit der schedule-Bibliothek übergeben. Ich sehe, es gibt ein paar Beispiele auf dem gleichen, aber nichts, wenn Sie die Threading-und run_threaded-Funktion verwenden.Wie übergeben Sie Argumente beim Aufruf einer Funktion mit Hilfe der Zeitplanbibliothek?

Im folgenden Codefragment versuche ich den 'sample_input' als Argument zu übergeben und verwechsle, wie man diesen Parameter definiert.

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

Antwort

1

Sie könnten durch Ändern der Methodendefinitionen und Aufrufen von Signaturen auf etwas ähnliches unten erhalten.

# 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") 
Verwandte Themen