Python3 apscheduler 定时任务 一些比较复杂的用法

# -*- coding:gbk -*-
import time, datetime as dt
from apscheduler.schedulers.background import BackgroundScheduler as bs

def task(taskName, Flag=True):
    print("{}已执行! 时间: {}".format(taskName, dt.datetime.now()))
 
if __name__ == "__main__":
	bs = bs()
	# date表示具体的一次性任务(默认),interval表示循环任务(只支持minutes、seconds),cron表示定时任务
	# bs.add_job(task, "interval", seconds=3, args=["循环任务"])
	# bs.add_job(func=task, trigger="interval", minutes=1, seconds=1, args=["循环任务"])
	
	# 每5秒执行一次任务,注意second="*/5",不是seconds
	# bs.add_job(func=task, trigger="cron", second="*/5", args=["定时任务", True], id="cron_task")
	# 每天19:00~21:00,每隔5秒执行1次任务
	# bs.add_job(func=task, trigger="cron", hour="19-21", second="*/5", args=["定时任务", True], id="cron_task")
	# 每天19:01、20:01、21:01,每隔5秒执行1次任务
	# bs.add_job(func=task, trigger="cron", hour="19-21", minute=1, second="*/5", args=["定时任务", True], id="cron_task")
	# 每天19:10~19:20、20:10~20:20、21:10~21:20,每隔1秒执行1次任务
	bs.add_job(func=task, trigger="cron", hour="19-21", minute="10-20", second="*", args=["定时任务", True], id="cron_task")

	# 在指定日期时间范围内, 每隔1分钟执行1次任务
	# bs.add_job(func=task, trigger="interval", minutes=1, start_date="2020-12-24 17:30:00", end_date="2020-12-24 18:30:00", args=["循环任务", True])

	# bs.add_job(func=task, trigger="date", args=["一次性任务", True], next_run_time=dt.datetime.now() + dt.timedelta(seconds=5), id="data_task")

	# 1-12月,周一到周日,17:00到18:00 整点执行任务
	# bs.add_job(func=task, trigger="cron", month="1-12", day_of_week="mon-sun", hour="17-18", args=["定时任务", True])

	# 在2021-02-30 00:00:00之前,每周一到周五的6:30(am)触发
	# bs.add_job(func=task, trigger="cron", day_of_week="mon-fri", hour=6, minute=30, end_date="2021-02-30")
	# bs.add_job(func=task, trigger="cron", minute=1, day_of_week="mon-fri", hour="17-18", args=["定时任务", True])

	# bs.remove_job("data_task")

	bs.start()
	print("Press Ctrl+C to exit")
	try:
		# This is here to simulate application activity (which keeps the main thread alive).
		while True:
			time.sleep(2)
	except (KeyboardInterrupt, SystemExit):
		# Not strictly necessary if daemonic mode is enabled but should be done if possible
		bs.shutdown()

猜你喜欢

转载自blog.csdn.net/k83133058/article/details/112568770