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

yizhihongxing

下面是关于“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中的断言(assert语句)

    断言是在程序运行时发生的断点,用来确保代码的正确性,如果断言失败,程序会停止,并引发 AssertionError 异常。 Python 中的 assert 语句是一种用于测试一个条件是否为真的语句,如果为真,则程序继续执行,否则报错。assert 语句十分有用,因为它们在程序中执行了测试,如果条件不满足,会在程序出问题之前就发现错误。 下面是 assert…

    python 2023年5月13日
    00
  • python 如何比较字符串是否一样

    在Python中,比较字符串是否一样有多种方法,本文将详细讲解其中的几种方法。 方法一:使用“==”运算符 在Python中,我们可以使用“==”运算符比较两个字符串是否一样。以下是一个示例: str1 = "hello" str2 = "world" if str1 == str2: print("字符串相…

    python 2023年5月14日
    00
  • python实现人机五子棋

    Python实现人机五子棋 人机五子棋是一款常见的益智类游戏,其玩法类似于围棋,但是相对要简单一些,适合大众娱乐。Python常常被用来实现五子棋这个游戏,本篇文章将详细讲解Python实现人机五子棋的完整攻略。 准备工作 在实现人机五子棋之前,需要掌握如下技术: Python基础语法 Python的GUI库(如Tkinter、PyQt等) Alpha-be…

    python 2023年5月23日
    00
  • python re正则匹配网页中图片url地址的方法

    以下是详细讲解“Python re正则匹配网页中图片URL地址的方法”的完整攻略,包括正则表达式的基本语法、使用re模块匹配网页内容的方法和两个示例说明。 正则表达式基本语法 正则表达式是一种用于匹配文本的模式。Python中,我们可以使用re模块来处理正则表达式。正则表达式的基本语法如下: 符号:匹配指定的字符。 字集:匹配指定的字符集。 量词:匹配指定的…

    python 2023年5月14日
    00
  • python实现学生通讯录管理系统

    Python实现学生通讯录管理系统 本文将介绍如何使用Python语言实现学生通讯录管理系统。这个系统可以实现添加、删除、修改和查询学生信息等功能。 数据库 我们首先需要一个数据库来存储学生信息。我们可以选择使用sqlite3来创建一个本地的数据库。 import sqlite3 # 连接到本地数据库 conn = sqlite3.connect(‘stud…

    python 2023年5月30日
    00
  • Python报错SyntaxError:unexpected EOF while parsing的解决办法

    当我们在Python编程过程中,有时会遇到SyntaxError: unexpected EOF while parsing的报错。这通常是由于代码中缺少了一些必要的语法元素,例如括号、引号、冒号等,或代码没有正确地结束。以下是解决这个问题的一些常见方法: 1. 检查代码结尾 在Python中,代码块通常以冒号(:)结尾。如果代码块没有正确地结束,就会出现S…

    python 2023年5月13日
    00
  • 解决python3输入的坑——input()

    以下是关于解决Python3输入的坑——input()的完整攻略: 问题描述 在Python3中,使用input()函数获取用户输入时,可能会遇到一些坑。例如,输入的字符串中包含空格时,会被分割成多个字符串。解决这些问题可以帮助我们正确地获取用户输入。 解决方法 使用以下步骤解决Python3输入的坑——input(): 使用split()函数分割字符串。 …

    python 2023年5月13日
    00
  • 笔记本电脑选集成显卡好还是独立显卡好

    笔记本电脑选集成显卡好还是独立显卡好 笔记本电脑的显卡可以分为集成显卡和独立显卡两种。那么,选购笔记本电脑时,应该选集成显卡好还是独立显卡好呢?下面详细讲解一下,希望可以对你有所帮助。 集成显卡 集成显卡是内嵌于主板上的显卡,一般使用内存的一部分。集成显卡因为是内置的,所以不占用其他空间,从而令笔记本电脑变得轻薄。相对于独立显卡来讲,集成显卡成本更低,价格更…

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