【python】BlockingScheduler 定时任务的一些使用场景

【python】BlockingScheduler 定时任务的一些使用场景

1.案例

1.1 定时循环任务

from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
首先看看周一到周六 白天定时执行任务

from apscheduler.schedulers.blocking import BlockingScheduler

def sayHello():
    print('hello!')

def sayHello2():
    print('hello22!')


if __name__ == '__main__':
    print("正在运行中..")
    scheduler = BlockingScheduler(timezone='Asia/Shanghai')

    # 周一到周六,早上九点到下午六点,每小时的零一分,汇报一次
    scheduler.add_job(sayHello, "cron", day_of_week="0-5", hour="9-18", minute=1)
    scheduler.start()
# 周一到周五,早上九点到中午十二点,下午两点到下午六点,每小时的零一分,汇报一次
    scheduler.add_job(sayHello, "cron", day_of_week="0-4", hour="9-12,14-28", minute=1)

在这里插入图片描述

from datetime import datetime

from apscheduler.schedulers.blocking import BlockingScheduler


def job_function():
    print("Hello World")

sched = BlockingScheduler()

# Schedule job_function to be called every two hours
sched.add_job(job_function, 'interval', hours=2)

sched.start()

在这里插入图片描述

1.2 定时任务的修改、暂停和恢复

修改定时任务myfunA的时间。

import time
from apscheduler.schedulers.blocking import BlockingScheduler

def funA():
    print("{},AAAAAAAAAAAAAAA".format(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))))

def funB():
    print("{},BBBBBBBBBBBBBBB".format(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))))
    scheduler.reschedule_job(job_id="myfunA",trigger="interval", seconds=3)  #修改任务时间,测试完成

if __name__ == '__main__':
    print("定时小程序 正在运行中... ")

    scheduler = BlockingScheduler(timezone='Asia/Shanghai')
    scheduler.add_job(funA, "interval", seconds=1,id='myfunA')  #此处的id是自定义的
    scheduler.add_job(funB, "interval", seconds=5,id='myfunB')
    scheduler.start()

在这里插入图片描述


定时任务的暂停和恢复

import time
from apscheduler.schedulers.blocking import BlockingScheduler

def funA():
    print("{},AAAAAAAAAAAAAAA".format(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))))

def funB():
    print("{},BBBBBBBBBBBBBBB".format(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))))

    # scheduler.reschedule_job(job_id="myfunA",trigger="interval", seconds=3)  #修改任务时间,测试完成
    scheduler.pause_job(job_id="myfunA")
    scheduler.print_jobs(jobstore=None)
    time.sleep(3)
    scheduler.resume_job(job_id="myfunA")
    scheduler.print_jobs()

if __name__ == '__main__':
    print("定时小程序 正在运行中... ")

    scheduler = BlockingScheduler(timezone='Asia/Shanghai')
    scheduler.add_job(funA, "interval", seconds=1,id='myfunA')  #此处的id是自定义的
    scheduler.add_job(funB, "interval", seconds=5,id='myfunB')
    scheduler.start()

在这里插入图片描述

参考博客

python定时任务最强框架APScheduler详细教程
官方使用文档
定时任务框架apscheduler

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值