问题描述
我目前正在编写一个Python程序,该程序应启动多个任务。为了进行时间管理,我安装了库Schedule。不幸的是,调度程序每次都执行我的功能,尽管它没有正确的时间。时间是过去还是将来都无关紧要,该函数始终会执行。
import time
from datetime import date
import schedule
class Trader():
def __init__(self):
pass
def scheduler(self,x,y,z):
#schedule.every().monday.at("23:10").tag().do(self.daily(x,z))
schedule.every().day.at("22:10").do(self.daily(x,z))
while True:
schedule.run_pending()
time.sleep(1)
def daily(self,z):
print("running")
return
感谢您的帮助
解决方法
Job.do()
method需要一个函数对象,但是您正在调用一个函数并将结果传递给.do()
有一个FAQ on schedule's documentation website,说明了如何将参数传递给计划的函数。
def my_job():
# This job will execute every 5 to 10 seconds.
print('Foo')
schedule.every(5).to(10).seconds.do(my_job)
OP的代码可以更改为
schedule.every().day.at("22:10").do(self.daily,x,y,z)