zoukankan      html  css  js  c++  java
  • APScheduler定时任务使用

    python之APScheduler模块使用

    • 介绍
    • 主要模块
    • 使用

    介绍

    需要使用定时任务, 简单的可以使用cron模块完成, 考虑到window及linux的通用性, 使用APScheduler模块实现

    • 文档地址
    • windows和linux下都能使用
    • 解决几种类型的定时任务
      • 一次性延时运行: 在设定的时间点运行一次任务
      • 循环定时运行: cron型的定时运行,可指定开始和结束时间
      • 基于间隔的执行: 以一定间隔运行作业,可指定开始和结束时间

    主要模块

    • 触发器[triggers]
    • 作业店[job stores]
    • 执行者[executors]
    • 调度器[schedulers]

    使用

    • 安装

      pip install apscheduler

    • 创建调度器

      from datetime import datetime
      import json
      
      from apscheduler.schedulers.background import BackgroundScheduler
      from apscheduler.jobstores.mongodb import MongoDBJobStore
      from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
      from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor  
      from apscheduler.jobstores.redis import RedisJobStore  
      import redis
      import pickle  
      connect_args = {
          'host' :'127.0.0.1',
          'port': 6379,
          'password':'123456'
      }
      jobstores = {
          'default': RedisJobStore(db=14,
                              jobs_key='apscheduler.jobs',
                              run_times_key='apscheduler.run_times',
                              pickle_protocol=pickle.HIGHEST_PROTOCOL,
                              **connect_args)
      }  
      executors = {
          'default': ThreadPoolExecutor(20),
          'processpool': ProcessPoolExecutor(5)
      }
      job_defaults = {
          'coalesce': False,
          'max_instances': 3
      }  
      scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors,  job_defaults=job_defaults, timezone="Asia/Shanghai")
      scheduler.start()
      
    • 创建触发函数,添加到调度器

      def my_func():
          """
          定时任务的测试函数
          """
          print('我正在执行定时任务!')
      
      
      job = scheduler.add_job(my_func, 'interval', minutes=1, id='my_job_id')
      
    • 任务可以,获取列表,暂停,修改(更新),建议使用时设定id

  • 相关阅读:
    html----响应式布局,左侧栏目固定,右侧内容随着屏幕宽度变化而变化
    es6----set map应用场景
    html----实现元素上下左右居中
    html----怎样实现元素的垂直居中
    html----BFC独立渲染区
    js-----new一个对象的过程
    解决ios手机上传竖拍照片旋转90度的问题
    软键盘遮挡问题
    在不同浏览器中,input里面的输入光标大小表现形式却大不相同
    样式兼容开头
  • 原文地址:https://www.cnblogs.com/faronzz/p/12930073.html
Copyright © 2011-2022 走看看