首发于Python系列

Python脚本定时部署

目录
收起
1、使用场景
2、设置定时任务的两种方式
2.1 用Python内部的定时器
关于更多schedule模块使用详情可参考
最终这个是要ubuntu终端运行的。打开终端
想了解更多APScheduler模块使用,可参考一下文档,或网上检索,我这里只做一个引入。
2.2 使用crontab部署定时任务

1、使用场景

在Ubuntu系统中定时跑Python脚本

2、设置定时任务的两种方式

2.1 用Python内部的定时器

2.1.1 调用schedule模块

#pip安装模块
#建议使用国内源这样会比较快一些。
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com schedule
#在代码中插入模块
import schedule
import time

#定义一个函数
def hello_fun():
    print("hello world!")

#设置定时器
#设置为每天的下午两点半运行代码。
schedule.every().day.at('14:30').do(hello_fun)#这里只需要函数名
#调用定时任务
while True:
    schedule.run_pending()
    time.sleep(5)

关于更多schedule模块使用详情可参考

最终这个是要ubuntu终端运行的。打开终端

#这里是方式py文件的文件夹,用绝对路径。
#有的将Python3设置为python默认,所以也可以用python代替python3
#在虚拟机终端类似于windows系统的cmd,这里一般是不能关闭的,关闭后要运行的代码就终止了,
#而且修改代码后,需要重新输入一次才会更新要运行的代码。
python3 /home/user/python_code/name.py

2.1.2 调用APScheduler模块

#pip安装APScheduler库
pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com apscheduler
#插入模块
from apscheduler.schedulers.blocking import BlockingScheduler
#设置时区
scheduler = BlockingScheduler(timezone='Asia/Shanghai')
#定义一个函数
def hello_world():
    print('hello world!!!')

#设置定时任务
scheduler.add_job(hello_world, "cron", hour=12, minute=5, misfire_grace_time=60)
#启动定时任务
scheduler.start()

想了解更多APScheduler模块使用,可参考一下文档,或网上检索,我这里只做一个引入。

2.2 使用crontab部署定时任务

crontab部署定时任务,是本文档重点要讲的。看着有点复杂,其实用起来是非常好用的。

最大的优点,修改代码之后不用反复修改部署文档。

一般linux系统会自带crontab

2.2.1 开启crontab服务

sudo service cron start

2.2.2 进入编辑模式

crontab -e
#一开始会让你选一个编辑器,我一般会选vim也就是代号为2的那个。
#如果一开始选择的编辑器不好用可以换
发布于 2022-12-07 11:53・IP 属地北京
写下你的评论...

还没有评论,发表第一个评论吧

文章被以下专栏收录

    Python系列

    Python系列

    Python爬虫、数据清洗、可视化等内容的分享
想来知乎工作?请发送邮件到 jobs@zhihu.com