Python sched模块定时任务详解与实例

白榆
白榆
发布时间:2026-10-13| 2人浏览过
原创

本文详细解析Python内置sched模块的定时任务实现方法。通过讲解enter方法的四个核心参数(延迟、优先级、动作、参数)及run方法的阻塞特性,结合完整代码示例,展示如何自定义执行时间、函数及优先级,帮助开发者高效管理后台定时任务。

sched模块概述

本文主要介绍Python中sched模块在定时任务中的应用实例。文中通过详细的示例代码进行说明,内容详实,对读者的学习或工作具有参考价值,建议相关读者仔细阅读并参考。

利用sched模块,开发者可以自定义执行时间、指定执行的函数以及设定任务的优先级,从而灵活地控制函数的执行逻辑。


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

enter方法参数详解

在代码中,schedule是一个调度器对象,其变量名可以任意命名,不影响功能实现。

核心方法为schedule.enter(delay, priority, action, arguments),用于向调度器添加任务。

delay参数为第一个参数,接受整数或浮点数,表示距离当前时间多少秒后执行对应的action任务。

priority参数为第二个参数,用于设定优先级。数值越小优先级越高,例如0为最高优先级,1次之,2再次之。当多个任务预定在同一时刻执行时,系统将根据优先级决定执行顺序。

action参数为第三个参数,指定需要执行的任务,通常理解为目标函数的函数名。

arguments参数为第四个参数,用于传入定时执行函数所需的参数。建议将参数用括号包裹;若仅传入单个参数,括号内该参数后必须添加逗号,否则会导致语法错误。

例如,调用格式应写为schedule.enter(delay, priority, action, (argument1,)),注意元组形式的参数传递。

run()方法会一直阻塞当前线程,直到所有已注册的任务全部执行完毕。由于所有任务均在同一线程中运行,若某个任务的执行时间长于其他任务的等待时间,其他任务将被推迟执行。这种机制确保了没有任务丢失,但任务的实际调用时间可能会比设定时间有所延迟。

代码实例演示

以下是具体的代码实现示例。


import time
import sched
import datetime
schedule = sched.scheduler( time.time,time.sleep)
def event_fun1():
  print("func1 Time:", datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
def event_fun2():
  print("func2 Time:", datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
def event_fun3():
  print("func3 Time:", datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

def func1(sec):
  schedule.enter(sec,0,func1,(sec,))
  event_fun1()
def func2(sec):
  schedule.enter(sec, 0, func2, (sec,))
  event_fun2()
def func3(sec):
  schedule.enter(sec, 0, func3, (sec,))
  event_fun3()

print ("start")
while True:
  nt = datetime.datetime.now()
  if nt.second == 0:
    break
  time.sleep(1)

schedule.enter(10,0,func1,(10,))
schedule.enter(30,0,func2,(30,))
schedule.enter(60,0,func3,(60,))
schedule.run()
print("end")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。