Python使用定时调度任务,可以使用第三方模块schedule
或者是系统原生的cron
。
下面先介绍一下schedule
模块的使用。
安装
在命令行中输入以下命令进行安装:
pip install schedule
定时任务的基本用法
使用schedule
模块,我们可以很方便地编写一些需要定时执行的任务。以下是一个简单的例子:
import schedule
import time
def job():
print("I'm running at", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
while True:
schedule.run_pending()
time.sleep(1)
在这个例子中,我们使用了schedule
模块来定义了五个定时任务,分别是每隔10分钟运行一次,每个小时运行一次,每天的10:30运行一次,每个周一运行一次,每个周三的13:15运行一次。然后在主循环中,我们使用schedule.run_pending()
来运行即将到期的任务,使用time.sleep(1)
来让循环一秒钟运行一次,以便及时执行即将到期的任务。
小结
schedule
模块可以非常方便地实现Python的定时任务。以上为基础用法,更多高级用法可以参考文档。
使用Linux系统原生的cron
在Linux系统中,我们可以使用原生的cron
来执行周期性任务。
编写脚本
首先,我们需要编写一个Python脚本来执行我们的任务。比如,以下是一个每分钟打印时间的脚本:
import time
print("Running at", time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
编写cron规则
接下来,我们需要写一个cron规则,来告诉系统何时运行这个脚本。我们可以通过编辑/etc/crontab
文件来实现。比如,如果你希望这个脚本每分钟执行一次,可以在/etc/crontab
文件中添加以下内容:
* * * * * root /usr/bin/python3 /path/to/your/script.py
其中,* * * * *
表示每分钟运行一次,/usr/bin/python3
是Python的执行命令,/path/to/your/script.py
是你要执行的Python脚本的路径。
测试cron
以上的步骤做完之后,我们需要重启cron
服务并测试我们的规则是否生效。可以使用以下命令重启cron服务:
systemctl restart cron.service
然后等待下一分钟的到来,如果一切正常,你应该能在/var/log/syslog
中看到cron执行的结果了。
小结
在Linux系统中,使用cron可以非常方便地定时执行Python脚本,为系统管理带来了很大的便利。以上为基本用法,更多高级用法可以参考文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用定时调度任务的方式 - Python技术站