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)
posted @ 2024-12-31 13:29  TheFirstDream  阅读(38)  评论(0)    收藏  举报