任何人帮助我获取以下条件的代码......
我想每2秒和3秒运行一次job1和job2,工作1和工作2应该在一天的9点30分开始......应该在晚上17点30分停止......!工作3 @ 17:31 pm每天一次..
import schedule
import time
def job1():
print("I'm working...")
def job2():
print("I'm not working...")
def job3():
print("I'll not work...")
schedule.every(2).seconds.do(job1) #For Every 2 seconds
schedule.every(5).seconds.do(job2) #For Every 3 Seconds
schedule.every().day.at("17:28").do(job3) #Once in a day
while True:
schedule.run_pending()
time.sleep(1)
您可以将其包装到函数中,并使用调度程序在给定时间内启动它
schedule.every(2).seconds.do(job1) #For Every 2 seconds
schedule.every(5).seconds.do(job2) #For Every 3 Seconds
你可以在你想要的时候取消这份工作。所以你将有2个额外的工作,开始和停止其他工作。
可能不是最好的方式,但这样的事情应该有效。 (你显然可以扩展if语句,只包含工作日/排除假期等)
import datetime
import time
def job_a():
print('a')
def job_b():
print('b')
def job_3():
print('3')
start_a = datetime.datetime.now()
wait_time_a = 2
start_b = datetime.datetime.now()
wait_time_b = 5
start_time = 9.30
end_time = 17.31
do_job_3 = False
while True:
while datetime.datetime.now().hour + datetime.datetime.now().minute/100. > start_time \
and datetime.datetime.now().hour + datetime.datetime.now().minute/100. < end_time:
do_job_3 = True
if (datetime.datetime.now() - start_a).seconds > wait_time_a:
job_a()
start_a += datetime.timedelta(seconds=wait_time_a)
if (datetime.datetime.now() - start_b).seconds > wait_time_b:
job_b()
start_b += datetime.timedelta(seconds=wait_time_b)
time.sleep(1)
if do_job_3:
do_job_3 = False
job_3()
time.sleep(1)