想要周期性地执行某个Python脚本,首选方案虽是Crontab,但有其不便之处。当任务数量多或需要更灵活的调度时,Crontab的管理就会变得麻烦。而Celery虽是一个强大的任务队列,但对于轻量级的调度需求来说,配置较为复杂。
这时,若你希望使用一个轻量级的任务调度工具,且要求尽可能简单、容易使用、无需外部依赖,并希望它能容纳Crontab的所有基本功能,那么Schedule模块是你的不二之选。
使用Schedule模块来调度任务非常简单。只需几行代码即可实现。感受一下它的魅力:
你需要安装Schedule模块。选择以一种方式安装依赖:
Windows 环境:打开Cmd (开始-运行-CMD),输入以下命令安装:
pip install schedule
MacOS 环境:打开Terminal (command+空格输入Terminal),输入以下命令安装:
pip install schedule
接下来是Schedule模块的基本使用示例:
```python
import schedule
import time
def job():
print("I'm working...")
每10分钟执行一次job函数
schedule.every(10).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)
```
如上所示,你只需要引入schedule模块,通过调用schedule.every(时间数).时间类型.do(job) 发布周期任务。
发布后的周期任务需要用run_pending函数来检测是否执行,因此需要一个While循环不断地轮询这个函数。
除了基本的定时任务,Schedule还支持更多复杂的配置,如每天、每小时、每月的特定时间执行任务等。你还可以给作业打标签,通过标签过滤获取作业或取消作业。Schedule也支持异常捕捉,确保程序在遇到错误时不会中断后续任务的执行。
Schedule模块是一个轻量级、简单易用的任务调度工具,非常适合需要轻量级调度的场景。
希望通过上述的解释和代码示例,你能更好地理解和使用Schedule模块。如果你有任何其他问题或需要进一步的帮助,请随时提问。