Ich beabsichtigte, mehrere Jobs parallel auszuführen und folgte dem Beispiel here mit einer Jobwarteschlange, aber es einmal ausgeführt und eine Ausnahme ausgelöst 'NoneType' object is not callable
, wenn ich versucht, Argumente zu übergeben. Der Code im Folgenden aufgeführt:Wie übergeben Sie Argumente beim Ausführen von Jobs parallel mit einer freigegebenen Jobwarteschlange mit Python Schedule Modul
import Queue
import schedule
import threading
import time
def job(arg):
print 'Argument is %s' % arg
def worker_main():
while True:
try:
job_func = jobqueue.get()
job_func()
except Exception as e:
print e
jobqueue = Queue.Queue()
schedule.every(2).seconds.do(jobqueue.put, job(1))
schedule.every(2).seconds.do(jobqueue.put, job(2))
worker_thread = threading.Thread(target=worker_main)
worker_thread.start()
while True:
try:
schedule.run_pending()
time.sleep(1)
except Exception as e:
print e
sys.exit()
Die Ausgabe lautet:
Arg is 1
Arg is 2
'NoneType' object is not callable
'NoneType' object is not callable
'NoneType' object is not callable
'NoneType' object is not callable
'NoneType' object is not callable
'NoneType' object is not callable
...
Irgendwelche Ideen, diese zu lösen?
Dies wird erhöhen ein ' job() benötigt genau 1 Argument (0 gegeben) 'Ausnahme, ich denke, das Argument wurde an' do'-Funktion übergeben, was ich brauche, wurde übergeben, um 'job' zu funktionieren –
Wahr, ich habe die Funktion nicht bemerkt, die geplant wurde, ist nicht der Job, sondern bringt den Job in die Warteschlange. Ich habe die Antwort aktualisiert. – farzad
Danke! Du hast das definitiv gelöst –