Python定时任务
@
几种方法
schedule
import schedule
import time
def doLoops():
print(1)
schedule.every(1).seconds.do(doLoops)
schedule.every(1).minutes.do(doLoops)
schedule.every().hour.do(doLoops)
schedule.every().day.at('15:30').do(doLoops)
schedule.every(5).to(10).minutes.do(doLoops)
schedule.every().monday.do(doLoops)
schedule.every().wednesday.at('15:15').do(doLoops)
schedule.every().minute.at(':15').do(doLoops)
while True:
schedule.run_pending()
time.sleep(1)
repeat
import time
from schedule import every, repeat, run_pending
@repeat(every().second)
def doLoops():
print(1)
while True:
run_pending()
time.sleep(1)
多个
from schedule import every, repeat, run_pending
@repeat(every().second, 'second')
@repeat(every().minute, 'minute')
def doLoop(param):
print('Every', param)
while True:
run_pending()
取消
schedule.cancel_job(doLoop)
# 取消所有任务
schedule.clear()
一次
def loop_once():
print('stop')
return schedule.CancelJob
标记与识别
schedule.every().day.do(greet, 'Andrea').tag('daily-tasks', 'friend')
friends = schedule.get_jobs('friend')
截止
schedule.every().second.until('23:59').do(job) # 今天 23:59 停止
调试运行
schedule.run_all(delay_seconds=1)
#多线程threading
APScheduler
from apscheduler.schedulers.background import BackgroundScheduler
import time
def doLoop():
print(1)
if __name__=='__main__':
scheduler = BackgroundScheduler()
scheduler.add_job(doLoop, 'interval', hours=8)
scheduler.start()
while True:
print(time.time())
time.sleep(1000)
FIGHTING

浙公网安备 33010602011771号