关于python:sched-模块中巨好用的轻量级定时任务神器scheduler

34次阅读

共计 1388 个字符,预计需要花费 4 分钟才能阅读完成。

Python 提供有一个弱小的、可用来定义执行任务调度的 sched 模块,该模块中含有一个 scheduler 类,可用来执行更简单的任务调度。

【浏览全文】

这种定时调度工作的实现还是比较简单的,总体来说只须要编写好定时工作最好应用规范范式来使得工作运行起来。

首先,须要导入三个模块的扩大库。次要是为了两个方面,一个是为了记录时间或者日期筹备的,另一个则是为了执行编写好的工作。

import sched # 定时工作模块
import time # 工夫模块
from datetime import datetime # 日期工夫模块 

接下来次要看一下执行定时工作的函数,就是通过这个函数最初将定时工作能够调度起来执行的,看一下这个调度函数的组成部分。

'''
初始化 scheduler 类对象
time.time 能够返回工夫戳的函数
time.sleep 实现运行阻塞期待
用 time 模块的这两个函数来实例化 scheduler 对象
'''
schedule = sched.scheduler(time.time, time.sleep)

第一个参数是一个能够返回工夫戳的函数,第二个参数能够在定时未达到之前阻塞。

编写一个工作用于执行。

def work(cycle):
    '''
    定义须要执行的工作工作
    :param cycle: 工夫周期,单位:秒
    :return:
    '''print(' 以后执行工夫:',datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    # 将工作函数加到定时工作中
    schedule.enter(cycle, 0, work, (cycle,))
    print('工作执行状态:', 'success')

函数介绍:enter 四个参数别离为:距离事件、优先级(用于同工夫达到的两个事件同时执行时定序)、被调用触发的函数。

最初,编写调起上述工作的触发函数,通过触发下面曾经写好的定时工作来实现定时工作的执行。

def exec_work(cycle=10):
    # 增加触发函数
    schedule.enter(0, 0, work, (cycle,))
    # 启动工作
    schedule.run()

再通过 main 的函数入口执行 exec_work 函数,这样一个定时工作的调度就算实现了。

if __name__ == '__main__':
    exec_work(1)

【往期精彩】

● 不必再应用命令行打包成 exe,有人写出了 UI 利用,可视化 UI 界面对 python 程序进行打包的办法!

● 发现一个机密:既 python3.6 之后字典居然变成了有序汇合,我再次验证了一下!

● 大厂校招白菜打包价 40W+,可快乐坏了房东大妈 …

● 这么多的内置函数能记住吗?对 python 的 68 个内置函数分类总结!

● 必须要会的文件操作对象 File,python 文件读写操作利器!

● 你不晓得的 CS 模式的过程管理工具,状态监测、我的项目启停高深莫测!

● 如何将一个 python 利用以 docker 镜像的形式来运行?

● python-celery 专一于实现分布式异步工作解决、任务调度的插件!

● python 近程服务操作工具:fabric,近程命令、本地命令、服务器操作利器!

● python 超赞插件 you-get,执行一行命令即可下载、命令行下载工具举荐!

● 办公自动化:Python-win32com 主动将 word 文档转换成 pdf 格局!

● Git LFS 3.0.0 公布,对大文件进行版本控制的 Git 扩大

正文完
 0