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中,我们可以使用属性访问控制来控制对对象属性的访问权限。这种机制可以帮助我们保护对象的属性,防止意外修改和访问。在Python中,属性访问控制主要通过一系列特殊方法(也称为魔法方法)来实现。在本文中,我们将详细介绍这些魔法方法,并说明它们在属性访问控制中的作用。 Python魔法方法-属性访问控制的魔法方…

    python 2023年5月13日
    00
  • python3实现常见的排序算法(示例代码)

    Python3实现常见的排序算法 排序算法是计算机科学中的基本算法之一,它可以将一组无序的数据按照一定的规则进行排序。在Python3中,可以使用多种算法来实现排序,包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。本文将详细讲解Python3实现常见的排序算法的完整攻略,包括算法原理、Python3实现过程和示例。 冒泡排序 冒泡排序是一种简单的排序…

    python 2023年5月13日
    00
  • Python 列表排序详解

    在Python中,列表(List)是一种常用的数据类型,它可以存储多个元素,并且这些元素可以是同一种或不同的类型。本文将详细讲解Python中列表的排序操作,包括使用sort()方法sorted()函数进行排序,同时提供多个示例说明。 列表排序 方法一:使用sort()方法 在Python中,可以使用sort()`方法对列表进行排序。该方法会直接修改原列表,…

    python 2023年5月13日
    00
  • 关于python的矩阵乘法运算

    关于Python的矩阵乘法运算,我将为你提供完整的攻略。 矩阵乘法简介 矩阵乘法是指两个矩阵相乘,得到一个新的矩阵。在Python中,我们可以使用NumPy库来进行矩阵乘法运算。 NumPy库简介 NumPy是Python中用于科学计算的一个重要库。它可以用于数学、储存、处理和操作大型多维数组和矩阵。NumPy库是Python科学计算的核心库,很多其他科学计…

    python 2023年6月5日
    00
  • 强悍的Python读取大文件的解决方案

    接下来我将详细讲解“强悍的Python读取大文件的解决方案”的完整攻略。要实现高效读取大文件,我们有以下几个解决方案: 1. 使用生成器 使用生成器能够根据需要逐行读取文件,而不是一次性将整个文件加载到内存中。这种方法可以处理非常大的文件,因为在处理完每一行后就会释放内存。以下是一个例子: def read_large_file(file_path): wi…

    python 2023年6月5日
    00
  • python requests response值判断方式

    以下是关于Python requests库中response值判断方式的攻略: Python requests库中response值判断方式 在使用Python requests库发送Http请求时,我们需要对响应进行判断,以确保请求成功并获取到了正确的响应。以下是Python requests库中response值判断方式的攻略。 判断响应状态码 在Pyt…

    python 2023年5月15日
    00
  • python通过字典dict判断指定键值是否存在的方法

    要通过字典dict来判断指定键值是否存在,可以通过以下方法: 使用in关键字 使用in关键字可以非常方便地判断一个字典dict中是否存在指定键值,代码如下: my_dict = {‘name’: ‘Tom’, ‘age’: 18, ‘gender’: ‘male’} if ‘name’ in my_dict: print(‘name键值存在’) else: …

    python 2023年5月13日
    00
  • Python3直接爬取图片URL并保存示例

    下面是关于Python3直接爬取图片URL并保存的攻略: 1. 准备工作 在爬取图片之前需要进行一些准备工作: 安装Python3 安装requests库和beautifulsoup4库,这两个库是用来发送HTTP请求和解析HTML的,可以使用pip安装:pip install requests beautifulsoup4 2. 爬取图片URL 要爬取图片…

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