免费微信群
如果你需要一个Python学习环境,也可以扫码加入下方的免费交流群:和同学们交流~
more >>APscheduler全称Advanced Python Scheduler
作用为在指定的时间规则执行指定的任务,指定的任务就是一个Python函数。
核心组件有4个:Job、JobStore、Trigger、Executor
除了以下组件,还有Event 事件、 Listener 监听事件、 Scheduler 调度器
但需要自己操作的,只有
作用
Job作为APScheduler最小执行单位。
创建Job时指定执行的函数,函数中所需参数,Job执行时的一些设置信息。
构建说明
1 | id:指定作业的唯一ID |
Jobstore在scheduler中初始化,另外也可通过scheduler的add_jobstore动态添加Jobstore。每个jobstore
都会绑定一个alias,scheduler在Add Job时,根据指定的jobstore在scheduler中找到相应的jobstore,并
将job添加到jobstore中。
Jobstore主要是通过pickle库的loads和dumps【实现核心是通过python的__getstate__和__setstate__重写
实现】,每次变更时将Job动态保存到存储中,使用时再动态的加载出来,作为存储的可以是redis,也可以
是数据库【通过sqlarchemy这个库集成多种数据库】,也可以是mongodb等
目前APScheduler支持的Jobstore:
1 | MemoryJobStore |
Trigger绑定到Job,在scheduler调度筛选Job时,根据触发器的规则计算出Job的触发时间,然后与当前时间比较
确定此Job是否会被执行,总之就是根据trigger规则计算出下一个执行时间。
Trigger有多种种类,指定时间的DateTrigger,指定间隔时间的IntervalTrigger,像Linux的crontab
一样的CronTrigger
目前APScheduler支持的触发器:
1 | DateTrigger |
Executor在scheduler中初始化,另外也可通过scheduler的add_executor动态添加Executor。
每个executor都会绑定一个alias,这个作为唯一标识绑定到Job,在实际执行时会根据Job绑定的executor
找到实际的执行器对象,然后根据执行器对象执行Job
Executor的种类会根据不同的调度来选择,如果选择AsyncIO作为调度的库,那么选择AsyncIOExecutor,如果
选择tornado作为调度的库,选择TornadoExecutor,如果选择启动进程作为调度,
选择ThreadPoolExecutor或者ProcessPoolExecutor都可以
Executor的选择需要根据实际的scheduler来选择不同的执行器
目前APScheduler支持的Executor:
1 | AsyncIOExecutor |
1 | # -*- coding: utf-8 -*- |
Python定时库APScheduler原理及用法 - 知乎 (zhihu.com)
👉 项目官网:https://www.python-office.com/ 👈
👉 本开源项目的交流群 👈
https://www.centos.org/download/
下载之后,如果是win10系统,可以直接使用hyper功能安装本地虚拟机
CentOS8自带Python3.6.8
Redis支持五种数据类型:
类型 | 特点 | 命令 | 场景 |
---|---|---|---|
string(字符串) | 最基本的类型 二进制安全,可以包含任何数据 最大能存储512MB |
set get |
|
hash(哈希) | 适合于存储对象 | hset hmset |
存储、读取、修改用户属性 |
list(列表) | 双向链表 | lpush |
1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列 |
set(集合) | 无序、不重复 | sadd sinter:交集 |
1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐 |
zset(sorted set:有序集合) | 有序,不重复 每个元素对应一个double类型的分数,分数可以重复 |
zadd zincrby |
1、排行榜 2、带权重的消息队列 |
不是计算机提供的,是人为创造的,通过一个线程实现代码块之间的切换执行。
1 | #实现协程的几种方式 |
基于协程实现的编程,叫做异步编程。
进程运行的三个状态:运行、就绪、阻塞
阻塞:程序运行时,遇到了IO,程序挂起,CPU被切走
非阻塞:程序没有遇到IO;或者程序遇到IO,但是我通过某种手段,让CPU强行运行我的程序。
APScheduler是基于Quartz的一个Python定时任务框架。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。在线文档:https://apscheduler.readthedocs.io/en/latest/userguide.html
中间层
hexo文章中插入方便管理的图片文件夹
在/source/_post文件夹的同级目录下,创建images文件夹。在其中创建文章的同名文件夹,在文章中引入即可,例如:’’
hexo改变根目录,搭配nginx配置特定的端口
more >>在_config.yml文件中,修改root:属性
celery:跑通demo
mpvue:小程序开发
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true