python3 设置cron类型定时任务

本文采用APSchedual框架,设置cron类型(某个特定的时刻执行)定时任务,编码语言为python3,平台为PyCharm,系统为Windows10。

注意:

  • scheduler的主循环(main_loop),其实就是反复检查是不是有到点需要执行的任务。

  • BlockingSchedual:阻塞型,main_loop在当前进程的主线程内运行,所以调用start函数后会阻塞当前线程,即start后的语句无法执行。适合于只在进程中运行单个任务的情况。

  • BackgroundScheduler:非阻塞型,和BlockingScheduler基本一样,但其另外开了一个子线程,main_loop放在了这个子线程里,所以调用start函数后主线程不会阻塞,即其后语句照常执行。

  • 以上两种定时任务都是线程级的,以至于我没法在定时任务中执行多进程操作,最后无奈改成了用while判断是否到达某个时间点hhhhh好鸡肋!

第一步:安装APSchedual包。

第二步:导入APSchedual,开始编码啦。

1. BlockingScheduler阻塞型

from apscheduler.schedulers.blocking import BlockingScheduler

# 将要被定时执行的任务
def task(s):
    print(s)


if __name__ == '__main__':
    # 初始化调度器
    blocking_scheduler = BlockingScheduler()

    # 添加任务作业,args()中最后一个参数后面要有一个逗号,本任务设置在每天凌晨1:00:00执行
    scheduler.add_job(task, 'cron', hour='1', minute='0', second='0', args=("hello",))

    # 启动调度器,到点task就会被执行啦
    scheduler.start()

    print("world")  # 此处world将不会被打印出来,因为被阻塞了

2. BackgroundScheduler非阻塞型

from apscheduler.schedulers.background import BackgroundScheduler

# 将要被定时执行的任务
def task(s):
    print(s)


if __name__ == '__main__':
    # 初始化调度器
    background_scheduler = BackgroundScheduler()

    # 添加任务作业,args()中最后一个参数后面要有一个逗号,本任务设置在每天凌晨1:00:00执行
    scheduler.add_job(task, 'cron', hour='1', minute='0', second='0', args=("hello",))

    # 启动调度器,到点task就会被执行啦
    scheduler.start()

    print("world")  # 此处world会被打印出来

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值