1 | # 查询代码如下: |
1 | # 查询代码如下: |
👀 在线预览:冰墩墩3D效果 (部署在 GitHub,加载速度可能会有点慢 😓)
之前我们给大家分享过,如何部署自己的个人网站?👉从0开始,搭建个人网站
冰墩墩进阶款代码,主要通过JavaScript中的React框架来实现,
如需深入学习的同学,可以学习视频课程:React 实战进阶 45 讲 - 掌握大厂热门的前端利器
JavaScript通常搭配Python中的Django框架来使用:Django快速开发实战 - 从开发到部署,掌握项目开发全流程
实现代码如下
1 | import React from 'react'; |
温馨提示:本代码的运行,需要在电脑上,安装Python运行环境
还没安装的同学,可以查看:详解 | Python&PyCharm的软件下载和安装
运行完代码,想继续学习Python的朋友,可以查看教程:0基础学Python
1 | # coding=gbk |
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.centos.org/download/
下载之后,如果是win10系统,可以直接使用hyper功能安装本地虚拟机
CentOS8自带Python3.6.8
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