admin管理员组

文章数量:1530351

如果你想在Linux服务器上周期性地执行某个 Python 脚本,最出名的选择应该是 Crontab 脚本,但是 Crontab 具有以下缺点:

1.不方便执行秒级的任务

2.当需要执行的定时任务有上百个的时候,Crontab的管理就会特别不方便

另外一个选择是 Celery,但是 Celery 的配置比较麻烦,如果你只是需要一个轻量级的调度工具,Celery 不会是一个好选择。

在你想要使用一个轻量级的任务调度工具,而且希望它尽量简单、容易使用、不需要外部依赖,最好能够容纳 Crontab 的所有基本功能,那么 Schedule 模块是你的不二之选。

使用它来调度任务可能只需要几行代码,感受一下:

# Python 实用宝典
import schedule
import time
def job:
print("I'm working...")
schedule.every(10).minutes.do(job)
while True:
schedule.run_pending
time.sleep(1)

上面的代码表示每10分钟执行一次 job 函数,非常简单方便。你只需要引入 schedule 模块,通过调用 scedule.every(时间数).时间类型.do(job)发布周期任务。

发布后的周期任务需要用 run_pending函数来检测是否执行,因此需要一个While循环不断地轮询这个函数。

下面具体讲讲Schedule模块的安装和初级、进阶使用方法。

1.准备

请选择以下任一种方式输入命令安装依赖

1. Windows 环境 打开 Cmd (开始-运行-CMD)。

2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。

3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install schedule

2.基本使用

最基本的使用在文首已经提到过,下面给大家展示更多的调度任务例子:

# Python 实用宝典
import schedule
import time
def job:
print("I'm working...")
# 每十分钟执行任务schedule.every(10).minutes.do(job)
# 每个小时执行任务schedule.every.hour.do(job)
# 每天的10:30执行任务
s

本文标签: 周期强大简单工具Python