今天自学了下任务调度机。
就是定时任务。

然后上网查,人人都说apscheduler这个模块好。
我信了好吧。

查了查任务调度程序的网站:

既然有官方文档,我就不献丑瞎写了——官方文档说的通俗易懂,(但是总觉得某些功能没说),直接去看官方文档就好。

https://apscheduler.readthedocs.io/en/stable/index.html

给我的感觉:
本机调度,基本上没有什么问题,但是多主机调度似乎并不行。

这个脚本的路径都很深(我第一次看到脚本这么深的)
常见的调度有两种:阻塞性BlockingScheduler和非阻塞性的ackgroundScheduler,还有其他全局优化的调度器。

阻塞性就是:一次只能运行一个脚本,其他脚本不能运行。
非阻塞性就是:多个脚本并行。

大概逻辑很简单:每个系统有个执行器,然后你往执行器里写入需要运行的脚本和函数并定好时间,然后开启执行器就可以了。

调度机有这么几个好处:定时、稳定、独立。
比如说:某个进程报错退出,是并不影响其他任务的运行的。支持并行(不过PYTHON似乎是有全局锁的,一个时间点只能运行一个进程,不是真正的并行),但是程序里面有一个似乎支持多核,以后看看。

我查官方文档生成的调度机如下:

# 堵塞性调度器,每次只能运行一个进程
from apscheduler.schedulers.blocking import BlockingScheduler
# 并行性调度器,可以在后台运行多个进程
from apscheduler.schedulers.background import BackgroundScheduler
# 报错模式
from apscheduler.events import EVENT_JOB_ERROR, EVENT_JOB_MISSED
from loguru import logger
import arrow
import time
import datetimedef log():logger.debug(arrow.now())def log1():logger.warning('定时任务2')def listen(event):logger.warning(event.exception)# 非阻塞调度器,后台运行,不影响整个进程
scheduler = BackgroundScheduler()
# 标准的调度写法
# jitter振动器,可以动态调整程序运行时间,防止程序运行堵塞
scheduler.add_job(log, 'interval', seconds=30, jitter=1)
# 不等待直接调用任务调度
# id可以指定任务的ID
# insterval是间隔
scheduler.add_job(log1, 'interval', seconds=30, jitter=1, id='1', next_run_time=datetime.datetime.now())
# 选择只显示错过和故障
scheduler.add_listener(listen, EVENT_JOB_ERROR | EVENT_JOB_MISSED)
# 开始事务
# 调度机开始的时候,就不能够修改程序的状态
scheduler.start()
# 获取所有的事务
logger.info(scheduler.get_jobs())
logger.debug('over!')
time.sleep(600)

PYTHON任务调度相关推荐

  1. python利器怎么编程-Python任务调度利器之APScheduler详解

    任务调度应用场景 所谓的任务调度是指安排任务的执行计划,即何时执行,怎么执行等.在现实项目中经常出现它们的身影:特别是数据类项目,比如实时统计每5分钟网站的访问量,就需要每5分钟定时从日志数据分析访问 ...

  2. python任务调度框架_Python任务调度模块APScheduler

    一.APScheduler 是什么&APScheduler四种组成部分? APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架 ...

  3. python任务调度平台 界面_任务调度平台Cuckoo-Schedule

    1概述 1.1平台概述 Cuckoo-Schedule是基于Quartz-Schedule的轻量级任务调度框架,具有易学习.易上手.开发高效稳定的特点.Demo地址:http://cuckoo.hel ...

  4. python任务调度框架_python任务调度框架apscheduler【转】

    简介 APScheduler(以下简称APS)框架可以让用户定时执行或者周期性执行Python任务.既可以添加任务也可以删除任务,还可以将任务存储在数据库中.当APS重启之后,还会继续执行之前设置的任 ...

  5. python任务调度平台 界面_分布式任务调度平台XXL-JOB

    以前带我的人说过,最好的学习就是看官方文档,个人也有4个T的学习视频,但是会发现讲的都是入门,有的也比较浅. 官方文档比较官方,也比较权威,打开xxl-job的官网,写的贼详细,有些人喜欢收博客,不喜 ...

  6. python任务调度平台 界面_分布式任务调度平台XXL-JOB搭建教程

    关于分布式任务调度平台XXL-JOB,其实作者 许雪里在其发布的中文教程中已经介绍的很清楚了,这里我就不做过多的介绍了,关于其搭建教程,本人依照其文档搭建起来基本上也没遇到啥问题,这里通过博客的形式记 ...

  7. python任务调度框架_Python任务调度之sched

    这次我们主要讲解下Python自带模块当中的sched,不但小巧,也很强大,在实际应用中,某些场合还是可以用到的.作为一名Linux的SA,我们已经习惯了用crontab,而sched提供了一种延迟处 ...

  8. python 任务调度 celery_python任务调度模块celery(二)

    关于celery的的基础介绍及安装使用参见python任务调度模块celery. 多worker和多队列 首先是多worker和多队列的原理及流程图. 一般情况下对于多worker和多队列的配置文件单 ...

  9. python 任务调度 celery_斑马斑马-09-白云之上-python任务调度之celery

    一.celery简介 1:celery是什么 Celery是一个python开发的异步分布式任务调度模块. 2:celery是使用场景 异步任务:将耗时操作任务提交给Celery去异步执行,比如发送短 ...

最新文章

  1. 来谈谈Servlet~~
  2. 自定义全局按键修饰符
  3. C和指针之字符串编程练习3
  4. 具有弹性效果的ListView
  5. java学习(92):线程的创建方法一
  6. OJ1079: a+b(多实例测试2)(C语言数组实现)
  7. 处理之后的图像句柄传到显示框_PS基本原理,图像变换与变形操作,移动图像小技巧...
  8. Redis入门到入土教程_1
  9. 重设OS X (macOS)系统帐户密码的几种方法
  10. Oracle启动报错ORA-03113解决
  11. 8种开源情报(OSINT)工具简介
  12. Elasticsearch02
  13. js截取视频第一帧作为封面
  14. 计算机中央控制单元是由什么组成,电子控制单元由什么组成
  15. c语言delay和while,c语言中delay的用法
  16. 优质高效,阿里甩出SpringBoot巅峰之作,进阶不二之选
  17. MVP的精益创业模式
  18. 了解世界杯赔率,让您运气更‘好‘(个人分享)
  19. 【日记】 使用 zip4j 实现压缩包加密
  20. 软件设计师选择题真题知识点归纳

热门文章

  1. 考试记录:阿⾥云Apsara Clouder云计算专项技能认证:云服务器ECS⼊门
  2. Fiddler Everywhere 使用介绍
  3. Redis修炼秘籍筑基篇 — 3分钟教你安装连接测试Redis
  4. 【What if系列】无敌电吹风
  5. kepserver win7根证书
  6. unity3D2018版本的Android SDK 26.1.1版本下载
  7. MDL(内存描述符表) 详解
  8. 平面设计专业学什么?平面设计专业有哪些课程?
  9. js鼠标滚动到某个位置导航菜单显示
  10. 2021-08-24:合并石头的最低成本。有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的