python定时任务

Python 之 apscheduler 定时任务

喜夏-厌秋 提交于 2020-02-07 01:39:33
之前写过一篇博文,是用的 Linux 上自带的 crontab。 Linux定时任务——crontab 在 Python 里,也有一个用于写定时任务的依赖, apscheduler ,我一般是将其嵌入到 Django 里面做定时任务。 以下是使用语法: 每隔一段时间运行某函数 from apscheduler . schedulers . background import BackgroundScheduler def test ( ) : return 0 scheduler = BackgroundScheduler ( ) scheduler . add_job ( func = test , trigger = "interval" , hours = 1 ) scheduler . start ( ) func 参数为指定的函数,trigger 为触发器,interval 表明是间隔一段时间类型的, hours 为间隔时间,也可选为 minutes,表示每隔多少分钟运行一次。 每天某个时间点运行某函数 from apscheduler . schedulers . background import BackgroundScheduler def test ( ) : return 0 scheduler = BackgroundScheduler ( )

python定时任务框架:APScheduler源码剖析

百般思念 提交于 2020-02-03 14:39:52
言 APScheduler是Python中知名的定时任务框架,可以很方面的满足定时执行或周期性执行程序任务等需求,类似于Linux上的crontab,但比crontab要更加强大,该框架不仅可以添加、删除定时任务,还提供多种持久化任务的功能。 APScheduler弱分布式的框架,因为每个任务对象都存储在当前节点中,只能通过人肉的形式实现分布式,如利用Redis来做。 第一次接触APScheduler会发它有很多概念,我当年第一次接触时就是因为概念太多,直接用crontab多舒服,但现在公司项目很多都基于APScheduler实现,所以来简单扒一扒的它的源码。 前置概念 用最简单的语言提示一下APScheduler中的关键概念。 Job: 任务对象,就是你要执行的任务 JobStores: 任务存储方式,默认是存储在内存中,还可以支持redis、mongodb等 Executor: 执行器,就是执行任务的东西 Trigger: 触发器,到达某个条件触发相应的调用逻辑 Scheduler: 调度器,将上面几个部分连接起来的东西 APScheduler提供多个Scheduler,不同Scheduler适用于不同的情景,目前我最常见的就是BackgroundScheduler后台调度器,该调度器适合要求在后台运行程序的调度。 还有多种其他调度器: BlockingScheduler

Python任务调度模块APScheduler

若如初见. 提交于 2020-01-11 01:07:37
目录 一、APScheduler 是什么&APScheduler四种组成部分? 1、调度器(scheduler) 2、作业存储(job store) 3、执行器(executor) 4、触发器(triggers) 4.1、date 定时调度(作业只会执行一次) 4.2、interval: 每隔一段时间执行一次 4.3、cron: 使用同linux下crontab的方式 二、 How:APSched 怎么用? 安装 快速上手 任务操作 1、添加任务 2、删除任务 3、暂停&继续任务 4、修改任务属性 5、获得job列表 6、开始&关闭任务 三、一些定时任务脚本 1、定时任务运行脚本每日凌晨00:30:30执行 2、每天晚上0点 - 早上8点期间,每5秒执行一次任务。 3、在0、10、20、30、40、50分时执行任务。 4、直到2020-05-30,每周从周一到周五的早上5:30都执行一次定时任务 5、在6,7,8,11,12月的第3个周五的1,2,3点执行定时任务 6、每5秒执行该程序一次 参考资料 一、APScheduler 是什么&APScheduler四种组成部分? APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架。它允许你像Cron那样安排定期执行的任务,并且支持Python函数或任意可调用的对象。 1

python定时任务框架APScheduler

你。 提交于 2019-12-17 05:35:33
APScheduler简介 在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站的程序等等,都涉及到了关于定时任务的问题,第一时间想到的是利用time模块的time.sleep()方法使程序休眠来达到定时任务的目的,虽然这样也可以,但是总觉得不是那么的专业,^_^所以就找到了python的定时任务模块APScheduler: APScheduler基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。基于这些功能,我们可以很方便的实现一个python定时任务系统。 安装 1、利用pip进行安装 pip install apscheduler 2、源码安装(https://pypi.python.org/pypi/APScheduler/) python setup.py install APScheduler有四种组成部分: 触发器(trigger) 包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行。除了他们自己初始配置意外,触发器完全是无状态的。 作业存储(job store) 存储被调度的作业,默认的作业存储是简单地把作业保存在内存中

Python—定时任务(二)

末鹿安然 提交于 2019-12-13 13:11:02
简介 APScheduler的全称是Advanced Python Scheduler。它是一个轻量级的基于Quartz的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。 github: https://github.com/agronholm/apscheduler 官网文档: https://apscheduler.readthedocs.io/en/latest/ 组成 APScheduler整个系统可以说由这五个概念组成:调度器(scheduler),作业存储(job store),触发器(trigger),执行器(executor),任务(job)。 使用 https://www.jianshu.com/p/d04bd534b219 来源: https://www.cnblogs.com/liuhaidon/p/12034354.html

Python 定时任务最佳实践

社会主义新天地 提交于 2019-12-12 04:36:19
背景 最近有个需求,需要实现一个定时或定期任务的功能,需要实现每月、每日、每时、一次性等需求,必须是轻量级不依赖其它额外组件,并能支持动态添加任务。由于当前任务信息保存在集群 ETCD 数据库中,因此对任务持久化要求不高,每次重启都直接读取 ETCD 任务信息,为了后面扩展,还需要添加任务持久化功能。 定时任务库对比 根据上面需求,从社区中找到了几个 Python 好用的任务调度库。有以下几个库: schedule:Python job scheduling for humans. 轻量级,无需配置的作业调度库 python-crontab: 针对系统 Cron 操作 crontab 文件的作业调度库 Apscheduler:一个高级的 Python 任务调度库 Celery: 是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具, 也可用于任务调度 优缺点对比: schedule 优点是简单、轻量级、无需配置、语法简单,缺点是阻塞式调用、无法动态添加或删除任务 Python-crontab 优点是针对于系统 crontab 操作,支持定时、定期任务,能够动态添加任务,不能实现一次性任务需求 Apscheduler 优点支持定时、定期、一次性任务,支持任务持久化及动态添加、支持配置各种持久化存储源(如 redis、MongoDB)

centos 定时执行脚本

匿名 (未验证) 提交于 2019-12-03 00:03:02
1.安装crontab #yum install crontabs 2.编辑定时任务: #crontab -e 3.路径要写绝对路径 * * * * * python /home/xxx.py ###每分钟执行一次 #5 * * * * python /home/xxx.py ###每小时05分时执行一次 4.重启服务 #service crond restart 来源:51CTO 作者: 小帆97 链接:https://blog.csdn.net/weixin_41396062/article/details/100802159

Python 定时调度

陌路散爱 提交于 2019-12-01 10:09:44
APScheduler APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。 APScheduler提供了多种不同的调度器,方便开发者根据自己的实际需要进行使用;同时也提供了不同的存储机制,可以方便与Redis,数据库等第三方的外部持久化机制进行协同工作,总之功能非常强大和易用。 安装 使用 pip 包管理工具安装 APScheduler 是最方便快捷的。 APScheduler的主要的调度类 在APScheduler中有以下几个非常重要的概念,需要大家理解: 触发器(trigger) 包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行,根据trigger中定义的时间点,频率,时间区间等等参数设置。除了他们自己初始配置以外,触发器完全是无状态的。 作业存储(job store) 存储被调度的作业,默认的作业存储是简单地把作业保存在内存中,其他的作业存储是将作业保存在数据库中。一个作业的数据讲在保存在持久化作业存储时被序列化,并在加载时被反序列化。调度器不能分享同一个作业存储。job store支持主流的存储机制:redis, mongodb, 关系型数据库, 内存等等 执行器(executor) 处理作业的运行

Windows定时运行python程序

扶醉桌前 提交于 2019-11-30 13:02:49
当我们希望自己编写的python程序可以定时运行的时候,可以利用windows的定时计划任务来实现,借助windows提供的功能来实现定时运行python程序。 首先准备好自己的python.py或pyw文件,拷贝它的路径。路径最好是全英文; 进入任务计划程序控制页面: 我的电脑-管理-任务计划程序-任务计划程序库 在右侧单击创建任务: 在触发器-新建菜单下创建新任务,任务的高级设置中可以设定重复次数。 注意:重复任务时间间隔中的时间单位是可以编辑的,你可以编辑单位为分钟,默认最低间隔是1小时,但是可以通过将小时手工编辑为分钟即可实现每隔一分钟就运行。 在操作-添加窗口下配置想要定时运行的任务。选择启动程序,在三个框内一次填写:python.exe或pythonw.exe;第二个框填写你想要启动的python_code.py脚本的完整路径;第三个框填写python解释器的路径,即python的安装路径。 到这里配置已经完成,确认后该任务就以进入windows的任务计划库了。 来源: CSDN 作者: 镇上村树 链接: https://blog.csdn.net/realDonaldTrump/article/details/78663070

Win10环境下python脚本定时运行

孤人 提交于 2019-11-30 12:59:29
Win10环境下python脚本定时运行 简介 最近写了个小的python脚本,可是为了更好的实现脚本的功能就需要每隔6个小时运行一次。这时就要考虑如何实现每隔6个小时启动脚本程序。这里大概有两种思路, 第一种:在程序里设定延时,当设定的时间到了自动开启主程序; 第二种:利用 win10系统的计划任务 功能,设定多个触发条件,自动运行程序。 更新 :第三种:同样的利用 win10系统的计划任务 功能,进入高级设置,设定间隔时间。 https://blog.csdn.net/Q_QuanTing/article/details/82854444#t5 其中第一种可以说是比较简单的方法,但是如果使用这种方法就要求程序必须一直在运行,会消耗一定的资源。 第二种方法则避免了这种情况,只会在触发器触发之后才会运行该程序。 下面让我了手把手教你如何设置计划任务。 关键词: 多触发、Win10计划任务、python脚本、定时、自动 实现方法 1. 打开win10的计划任务 这里可以直接在任务栏的搜索框输入jhrw进入 计划任务 ,当然你也可以通过: 控制面板\系统和安全\管理工具\任务计划程序 进入。 2. 打开创建基本任务向导 打开 计划任务程序 后,在右边的操作栏选择 创建基本任务向导 3. 创建基本任务 首先输入任务的 名称 , 描述 写不写无所谓,不过如果要长期运行还是最好写一下