Ich verwende apscheduler apscheduler und ich versuche, in Parameter an die Handler-Funktion zu übergeben, die aufgerufen wird, wenn der geplante Auftrag gestartet wird:Gabe von Parametern Handler-Funktion
from apscheduler.scheduler import Scheduler
import time
def printit(sometext):
print "this happens every 5 seconds"
print sometext
sched = Scheduler()
sched.start()
sometext = "this is a passed message"
sched.add_cron_job(printit(sometext), second="*/5")
while True:
time.sleep(1)
Dadurch mir die folgende Störung gibt:
TypeError: func must be callable
Ist es möglich, Parameter in den Funktionshandler zu übergeben. Wenn nicht, gibt es Alternativen? Grundsätzlich muss jeder geplante Job eine Zeichenfolge zurückgeben, die ich beim Erstellen des Zeitplans übergeben habe. Vielen Dank!
Süße funktioniert es! Denkst du, du kannst schnell erklären, warum das funktioniert/wie das den Fehler behebt? Vielen Dank! –
Es wird erklärt. Sie müssen eine Funktion übergeben, d. H. Etwas, das aufgerufen werden kann. def foo(): pass "foo" ist die Funktion "foo()" ist der Rückgabewert des Aufrufs dieser Funktion. –
@ still.Learning Python unterstützt die Erstellung von anonymen Funktionen (d. H. Funktionen, die nicht an einen Namen gebunden sind) zur Laufzeit mit einem Konstrukt namens "Lambda". Dies ist eine normale Funktion -> def f (h): zurück h ** 10, und dies ist ein Lambda-Funktion -> g = Lambda h: h ** 10, beachten Sie den Unterschied ;) –