定时任务--Python中的APScheduler的使用(基于Flask)

1.APScheduler的简介:

  • Advanced Python Scheduler(APScheduler)是一个Python库,可让您安排Python代码稍后执行,一次或定期执行。(定时任务工具)
  • 官方文档

2.APScheduler的特点:

①不依赖于linux的crontab,独立运行。
②可以作为动态添加定时任务。
③可以将添加的任务持久化保存。

3.APScheduler的组件:

  • 存储器(job stores)
    • 任务存储是安排任务存储在哪里。默认存储只是将任务保留在内存中,但也可以将它们存储在各种类型的数据库中(例如sqlite,mysql,redis等)。
  • 触发器(triggers)
    • 可以理解为任务什么时候执行。每个任务都有自己的触发器。除了初始配置之外,触发器完全是无状态的。
  • 执行器(executors)
    • 任务执行人是处理任务的运行。他们通常是将任务提交给线程或进程池来完成此操作。任务完成后,执行程序会通知调度程序,调度程序随后会发出相应的事件。
  • 调度器(schedulers)
    • 任务调度者是将任务存储(job stores),任务执行人(executors)绑定在一起,起到管理定时任务的作用。通常只在应用程序中运行一个调度程序。应用程序开发人员通常不直接处理作业存储,执行程序或触发器,一般都是通过修改配置信息来实现。配置作业存储和执行程序是通过调度程序完成的,添加,修改和删除任务由调度者管理。

4.安装(pip安装)

  • pip install apscheduler

5.Python中操作各个组件

  • 1.调度器(schedulers):
    • BlockingScheduler
      from apscheduler.schedulers.blocking import BlockingScheduler
      """
      BlockingScheduler是阻塞模式,即运行到start()时,阻塞
      """
      scheduler = BlockingScheduler()
      scheduler.start()
      
    • BackgroundScheduler
      from apscheduler.schedulers.background import BackgroundScheduler
      """
      BackgroundScheduler时后台运行模式,即运行到start()时,立即返回
      """
      scheduler = BackgroundScheduler()
      scheduler.start()
      
  • 2.执行器(executors):
    • ThreadPoolExecutor------(线程)
      from apscheduler.executors.pool import ThreadPoolExecutor
      from apscheduler.schedulers.background import BackgroundScheduler
      '''
      executor = ThreadPoolExecutor(max_workers=20)
      线程池,最多20个线程同时执行
      '''
      executors = {
             
             
          'default':ThreadPoolExecutor(max_workers=20)
      }
      scheduler = BackgroundScheduler(executors=executors)
      scheduler.start()
      
    • ProcessPoolExecutor------(进程)
      from apscheduler.executors.pool import ProcessPoolExecutor
      from apscheduler.schedulers.background import BackgroundScheduler
      '''
      executor = ProcessPoolExecutor(max_workers=10)
      进程池,最多10个进程同时执行
      '''
      executors = {
             
             
          'default':ProcessPoolExecutor(max_workers=10)
      }
      scheduler = BackgroundScheduler(executors=executors)
      scheduler.start()
      
  • 3.存储器(job stores):
    • 不需要持久存储,可以存入内存中(MemoryJobStore)
      from apscheduler.jobstores.memory import MemoryJobStore
      from apscheduler.schedulers.background 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值