python定时任务 sched模块用法实例

下面是关于“Python定时任务 sched模块用法实例”的完整攻略。

示例说明

在介绍 sched模块用法实例前,我们先来看两个示例说明,以加深对 sched模块的理解。

示例一:每 10 秒后输出一句话

import sched
import time

s = sched.scheduler(time.time, time.sleep)

def print_sentence():
    print("Hello, World!")
    s.enter(10, 1, print_sentence, ())

s.enter(10, 1, print_sentence, ())
s.run()

在这个示例中,我们使用了 sched.scheduler() 方法创建了一个调度器实例 s。接下来定义了一个 print_sentence() 方法,用于打印一句话,之后调用了 sched.scheduler.enter() 方法来设定任务定时时间为 10 秒,任务优先级为 1,任务体为 print_sentence() 方法,任务参数为空。

最后调用了 sched.scheduler.run() 方法来启动定时任务,这样就可以每隔 10 秒打印一句话。

示例二:设定多个定时任务,有任务相近的情况下实现精确任务执行

import sched
import time

s = sched.scheduler(time.time, time.sleep)

def task_one():
    print("This is task one.")
    s.enter(1, 2, task_one, ())

def task_two():
    print("This is task two.")
    s.enter(5, 1, task_two, ())

s.enter(1, 2, task_one, ())
s.enter(5, 1, task_two, ())
s.run()

在这个示例中,我们也是先创建了一个 sched.scheduler 实例 s。接下来定义了 task_one() 和 task_two() 两个方法,并在其中设定了不同的定时任务。其中 task_one() 方法设定了每 1 秒执行一次的任务,优先级为 2;task_two() 方法设定了每 5 秒执行一次的任务,优先级为 1。

最后通过调用 sched.scheduler().enter() 方法来将两个定时任务添加到任务队列中,再调用 sched.scheduler().run() 方法来启动定时任务,这样在任务相近的情况下也可以实现精确任务执行。

完整攻略

在了解了上面两个示例之后,我们就可以开始介绍完整的 sched模块用法实例了。

步骤一:导入模块

首先要做的就是导入 scheduled 库:

import sched
import time

步骤二:创建调度器

接下来创建调度器,使用 time.time() 作为第一个参数,time.sleep() 作为第二个参数。

s = sched.scheduler(time.time, time.sleep)

步骤三:编写任务函数

编写任务函数,并在其中调用 sched.scheduler().enter() 方法来将任务添加到任务队列中。它的参数有以下四个:

  • 定时任务执行的时间戳
  • 任务优先级,数字越小表示任务越优先
  • 任务函数
  • 任务参数,为可选参数,默认值为()

下面是一个定时输出一句话的示例:

def print_sentence():
    print("Hello, World!")
    s.enter(10, 1, print_sentence, ())

下面是一个每分钟在控制台输出当前时间的示例:

import time

def display_time():
    print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    s.enter(60, 1, display_time, ())

步骤四:添加任务到任务队列

使用 sched.scheduler().enter() 方法将任务添加到任务队列中。

例如:

s.enter(10, 1, print_sentence, ())
s.enter(60, 1, display_time, ())

步骤五:运行调度器

最后调用 sched.scheduler().run() 方法启动调度器,开始定时任务:

s.run()

这样就可以实现定时输出一句话和每分钟在控制台输出当前时间的定时任务了。

总结

sched模块可以很方便的实现定时任务,只需要按照以上步骤进行即可。同时,在定义任务时一定要注意优先级,数字越小表示任务越优先。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python定时任务 sched模块用法实例 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • python爬虫竟然被小伙用来算命

    近日,有一篇文章称,一位小伙用Python爬虫和机器学习算法,开发了一款算命应用,引起了广泛关注。下面是Python爬虫竟然被小伙用来算命的完整攻略,包括数据获取、数据处理、数据存储和示例。 步骤1:获取数据 在Python中,我们可以使用requests库获取网页数据。以下是获取星座运势数据的示例: import requests url = ‘https…

    python 2023年5月15日
    00
  • 在Python-NumPy中获取切比雪夫数列对数据的最小二乘法拟合

    获取切比雪夫数列对数据的最小二乘法拟合,可以使用Python的NumPy库中polyfit函数来实现。下面是具体的攻略: 1.导入相应的库为使用NumPy库中的polyfit函数,我们需要首先导入NumPy库和matplotlib库。代码如下: import numpy as np import matplotlib.pyplot as plt 2.加载数据…

    python-answer 2023年3月25日
    00
  • Python中用try-except-finally处理异常问题

    当我们编写代码时,出现错误是很常见的事情,它们可能是由于代码逻辑问题、输入数据格式错误或者是外部资源异常等原因造成的。这些错误都会导致代码无法顺利执行下去,这时候,我们就需要使用异常处理代码来处理这些错误。Python提供了try-except-finally语句来处理异常问题。 Try语句 在Python中,如果我们希望处理潜在的异常情况,我们可以使用tr…

    python 2023年5月13日
    00
  • python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)

    下面我会给出关于“python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)”的完整攻略,包含以下部分: 准备工作 安装必要的Python库 编写爬虫代码 制作地图 部署到云服务器 定时爬取丁香园的新型冠状病毒数据 其中,2-6部分为攻略的主要内容,下面我将详细讲解每一部分。 1. 准备工作 在开始操作之前,我们需要先…

    python 2023年5月18日
    00
  • 盈透证券 Python 数据请求

    【问题标题】:Interactive Brokers Python Data Request盈透证券 Python 数据请求 【发布时间】:2023-04-04 17:33:01 【问题描述】: 我正在运行以下代码,但我获取快照价格的请求在 python 控制台上没有返回任何内容。我需要打印方法吗?抱歉,我不熟悉愚蠢的 oop,只做程序和功能。 谢谢 fro…

    Python开发 2023年4月6日
    00
  • python实现多线程暴力破解登陆路由器功能代码分享

    下面是详细讲解“python实现多线程暴力破解登陆路由器功能代码分享”的完整攻略: 1. 确定目标路由器登录地址和账号密码 在进行暴力破解路由器登录之前,首先需要确定目标路由器的登录地址和账号密码。一般情况下,路由器的登录地址为路由器的 IP 地址,而路由器的账号密码则在路由器的外包装或者说明书中可以找到。如果没有找到路由器的账号密码,可以试图使用默认的账号…

    python 2023年5月19日
    00
  • pip升级pip3的快速方法指南

    下面我将详细讲解“pip升级pip3的快速方法指南”的完整攻略,包含以下几个步骤: 1. 确认当前pip版本 在升级pip前,我们需要确认当前的pip版本。打开终端/命令行窗口,输入以下命令: pip –version 命令会返回当前pip的版本号,例如: pip 21.3.1 from /usr/local/lib/python3.8/site-pack…

    python 2023年5月14日
    00
  • Python爬取视频时长场景实践示例

    Python爬取视频时长场景实践示例 在进行视频相关业务开发的过程中,有时候需要获取到视频的时长信息。而在爬取网络中的视频时长信息时,常常需要使用Python。本文将从实践角度出发,分享爬取视频时长的一些方式,在最后还附带几条相关的技巧。 方式一:使用FFmpeg获取时长 FFmpeg是一款跨平台的音视频处理工具,可以从视频文件中提取出视频时长信息。在Pyt…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部