Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python中定时任务框架APScheduler入门

Python中定时任务框架APScheduler入门

原创
作者头像
Qwe7
发布于 2022-03-17 08:41:05
发布于 2022-03-17 08:41:05
97000
代码可运行
举报
文章被收录于专栏:网络收集网络收集
运行总次数:0
代码可运行

安装

安装只需要一行命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip3 install apscheduler

如果对Python的环境搭建及模块安装还不熟悉,可以看看我写的另一篇博客 Python环境搭建及模块安装

运行

首先介绍两个最常用的调度器:

  • BlockingScheduler 阻塞式调度器:适用于只跑调度器的程序。
  • BackgroundScheduler 后台调度器:适用于非阻塞的情况,调度器会在后台独立运行。

这是人说的话吗?字我都看得懂,意思一点也不明白。。。 简单说来,可以把 BlockingScheduler 看成是单线程,如果在程序中仅仅只运行定时任务,那么就应该选择阻塞式调度器。 而把 BackgroundScheduler 看成是多线程,如果在程序中除了运行定时任务,咱们还想同时做点别的计算啥的,那就应该选择后台调度器。

这里我选择使用 BlockingScheduler 阻塞式调度器,主程序只负责调度定时任务,不执行其他计算等操作。 如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from apscheduler.schedulers.blocking import BlockingScheduler    # 引入模块


def task():
    '''定时任务'''
    os.system('python3 spider.py')


if __name__ == '__main__':
    scheduler = BlockingScheduler()

    # 添加任务
    scheduler.add_job(task, 'cron', hour=11, minute=30)

    scheduler.start()

运行上面这段代码,就会在每天的11:30时执行 python3 spider.py 命令。

其中,出现了个新标签 cron,这玩意儿叫触发器,可以设置定时任务触发的条件,这里就简单介绍一下这个小东西。

APScheduler有三种内置的触发器:

date

日期,在某个具体的日期触发定时任务,仅触发一次。

如上所示,run_date 参数可以是 date型str型,甚至可以不显式指定。

interval

间隔,在某个时间间隔后触发定时任务,间隔触发无限次。

如上所示,weeks、days、hours、minutes、seconds 的参数都是 int型

cron

周期,在某个周期内触发定时任务,循环触发无限次。

该触发器的规则和 crontab 类似。各参数的说明如下:

参数

说明

year

int型或str,取值四位数的年份,如2020年

month

int型或str,取值范围为1-12月

week

int型或str,取值范围为第1-53周

day_of_week

int型或str,表示一周中的第几天,既可以用0-6表示也可以用其英语缩写表示(mon,tue,wed,thu,fri,sat,sun)

day

int型或str,取值范围为1-31日

hour

int型或str,取值范围为0-23时

minute

int型或str,取值范围为0-59分

second

int型或str,取值范围为0-59秒

start_date

datetime型或str,表示开始时间

end_date

datetime型或str,表示结束时间

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker 容器入门
1.1 容器简介 1.1.1 什么是 Linux 容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,
惨绿少年
2018/03/30
2K0
Docker容器技术
Docker介绍 什么是容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件。 容器镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。 来源:https://www.redhat.com/zh/topics/containers/whats-a-linux-container 容器就是虚拟化吗? 虚拟化使得许多操作系统可同时在单个系统上运行。 容器只能共享操作系统内核,将应用进程与系统其他部分,隔离开。
863987322
2018/03/29
3.5K0
Docker容器技术
029.Docker Compose部署Zabbix实战
Docker Compose已安装,参考《009.Docker Compose基础使用》。
木二
2019/07/25
2.3K0
029.Docker Compose部署Zabbix实战
​Docker 数据卷的管理及自动构建docker镜像
https://github.com/CentOS/CentOS-Dockerfiles
码农编程进阶笔记
2021/07/20
7030
​Docker 数据卷的管理及自动构建docker镜像
014.Docker Harbor+Keepalived+LVS+共享存储高可用架构
共享后端存储是一种比较标准的方案,将多个Harbor实例共享同一个后端存储,任何一个实例持久化到存储的镜像,都可被其他实例中读取。通过前置LB组件,如Keepalived,可以分流到不同的实例中去处理,从而实现负载均衡,也避免了单点故障,其架构图如下:
木二
2019/07/26
1.3K0
Docker从入门到干活,看这一篇足矣 [建议收藏]
Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。
码农编程进阶笔记
2021/07/20
4290
Docker从入门到干活,看这一篇足矣 [建议收藏]
4-数据的持久化和共享互连
正常情况下,删除容器,容器中所有的文件也会被删除。所以需要能持久化容器中数据的方法,也就是数据卷 数据卷(Data Volume)的作用:
jackxiao
2021/11/16
6920
011.Docker仓库管理
docker 仓库,即 registry,实现了镜像的管理、分发,同时还包括用户的认证。docker registry 仓库是一个无状态的、高可靠的服务器应用程序,用来存储docker镜像。docker.io 为 docker 官方的仓库,默认所有的pull均是从官方仓库拉取镜像。
木二
2019/07/26
6472
第一章 Docker入门基础
MySQL使用过程中的环境变量 Num|Env Variable| Description —-|—-|—- 1|MYSQL_ROOT_PASSWORD|root用户的密码 2|MYSQL_DATABASE|创建一个数据库 3|MYSQL_USER,MYSQL_PASSWORD|创建一个用户以及用户密码 4|MYSQL_ALLOW_EMPTY_PASSWORD|允许空密码
公众号: 云原生生态圈
2021/11/15
6820
010.Docker Compose构建WordPress实战
Docker Compose已安装,参考《009.Docker Compose基础使用》。
木二
2019/07/26
3820
Docker Compose 1.18.0 之服务编排详解
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器 Compose 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。 服务编排工具使得Docker应用管理更为方便快捷。 Docker Compose网站:https://docs.docker.com
程序员鹏磊
2018/02/09
1.5K0
Docker Compose 1.18.0 之服务编排详解
用Docker-Compose一分钟搭建Wordpress博客系统
参考:  Docker-Compose官方搭建Wordpress教程:https://docs.docker.com/compose/wordpress/
非著名运维
2022/06/22
2K0
用Docker-Compose一分钟搭建Wordpress博客系统
Docker 部署Registry私有仓库+Harbor私有仓库
有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一 个本地仓库供私人使用。 两种不同的搭建Docker私有仓库的方法,都必须要基于一个Docker服务器上,相比较而言,Harbor功能更强大些。 之前详细写过Registry私有仓库的搭建方法,这里的Registry只是有一点配置不一样而已,若要搭建Registry私有仓库,最好结合:Docker 镜像的创建与构建私有库,对比其不一样的地方,选择适合自己的。
小手冰凉
2020/08/05
1.8K0
Docker 部署Registry私有仓库+Harbor私有仓库
Docker 容器化部署实践Docker Compose
Docker compose是docker提供的一个命令行工具,实现对Docker容器集群的快速编排。
小土豆Yuki
2020/06/15
1K0
DockerHub访问慢怎么破?试试Harbor?
Harbor是一款开源的Docker镜像仓库服务,在Github上目前有13.4k+Star。提供了基于角色的镜像访问机制,可以保护你的镜像安全。
用户4172423
2020/12/31
3.4K0
DockerHub访问慢怎么破?试试Harbor?
Harbor介绍与企业级私有Docker镜像仓库搭建
Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。
踏歌行
2020/10/15
2.4K0
Harbor介绍与企业级私有Docker镜像仓库搭建
基于 Distribution / Harbor 部署 Docker 私有镜像仓库
Docker 在 2015 年推出了 Distribution 项目,即 Docker Registry 2。相比于 Old Registry,Registry 2 使用 Go 实现,在安全性、性能方面均有大幅改进。Registry 设计了全新的 Rest API,并且在 Image 存储格式等方面不再兼容于 Old Registry。如果你要与Registry2 交互,你的 Docker 版本至少要是 Docker 1.6。
iMike
2019/06/02
2.9K0
006.Docker网络管理
Docker使用Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。
木二
2019/07/26
1.1K0
Docker实践(五):Docker Compose
 Compose是用于定义和运行多个Docker应用的工具。使用yaml文件可以快速的创建和管理基于Docker容器的应用集群。
loong576
2019/09/10
1.2K0
Docker实践(五):Docker Compose
2.Docker学习之基础使用
Data Management,在使用Docker时候必然会在容器内产生数据,或者需要将容器内的数据进行备份,甚至多个容器之间进行数据共享,这时数据管理变得尤为重要;
全栈工程师修炼指南
2022/09/28
2.2K0
2.Docker学习之基础使用
推荐阅读
相关推荐
Docker 容器入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档