python定时调度框架APScheduler使用详解

python 任务调度

python定时调度框架APScheduler使用详解

from apscheduler.schedulers.background import BackgroundScheduler

def taskScheduler(self):
        try:
            scheduler = BackgroundScheduler(timezone='Asia/Shanghai')
            #定时任务
            # scheduler.add_job(self.mainTask, 'cron', day='1-31', hour='22', minute='50')
            #循环任务
            #scheduler.add_job(self.mainTask,  'interval', hours = '5')
            #在指定的时间,只执行一次
            #scheduler.add_job(tick, 'date', run_date='2016-02-14 15:01:05') 
            scheduler.start()
        except (KeyboardInterrupt, SystemExit):
            print("任务执行出错")
            scheduler.shutdown()

间隔调度(interval),参数如下:
weeks (int) – 间隔几周
days (int) – 间隔几天
hours (int) – 间隔几小时
minutes (int) – 间隔几分钟
seconds (int) – 间隔多少秒
start_date (datetime|str) – 开始日期
end_date (datetime|str) – 结束日期
timezone (datetime.tzinfo|str) – 时区

定时调度(cron)
year (int|str) – 年,4位数字
month (int|str) – 月 (范围1-12)
day (int|str) – 日 (范围1-31)
week (int|str) – 周 (范围1-53)
day_of_week (int|str) – 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun)
hour (int|str) – 时 (范围0-23)
minute (int|str) – 分 (范围0-59)
second (int|str) – 秒 (范围0-59)
start_date (datetime|str) – 最早开始日期(包含)
end_date (datetime|str) – 最晚结束时间(包含)
timezone (datetime.tzinfo|str) – 指定时区

示例:
# 2018-12-12运行一次job_function
scheduler.add_job(job_function, 'date', run_date=date(2018, 12, 12), args=['text'])
scheduler.add_job(job_function, 'date',run_date=datetime.datetime.now() , args=['text'])
# 每两个小时调一下job_function
scheduler.add_job(job_function, 'interval', hours=2)
# job_function将会在6,7,8,11,12月的第3个周五的1,2,3点运行
scheduler.add_job(job_function, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
# 截止到2018-12-30 00:00:00,每周一到周五早上五点半运行job_function
scheduler.add_job(job_function, 'cron', day_of_week='mon-fri', hour=5, minute=30, end_date='2018-12-31')

传参:
def cleanDict(name):
    print(name)

def task():
    scheduler = BackgroundScheduler(timezone='Asia/Shanghai')
    scheduler.add_job(cleanDict,'interval', seconds=3,args=['liu'])
    scheduler.start()
task()

参考网址:
https://blog.csdn.net/wsxx1020/article/details/78521564
https://www.cnblogs.com/hushaojun/p/5189109.html
https://www.jianshu.com/p/4f5305e220f0

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页