栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Linux Server 种脚本自动执行

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux Server 种脚本自动执行

在我们用python编写完脚本后,时常需要定时运行我们的脚本。在这里,我为大家介绍两种常用定时执行python脚本文件的方式:
第一种: crontab job
在Linux系统中可以通过设置crontab 的方式设置脚本自动执行的时间。这个任务调度命令是Linux系统默认安装的。crond 命令会自己动定期检查是否需要执行任务。
注意: 在初次新建crontab job 后,任务不会马上开始执行,一般需要等到2 min 后开始执行。
基本语法:crontab [-u user] file 或 crontab -e
编写crontab 文件。
其中,-u 是指设定指定的user来执行脚本,这主要是涉及到某个用户才有执行或修改权限等。
-e : 进入crontab 文件编辑状态。
-r : 删除目前的时程表。
-l : 查看用户的时程表。

	*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

第二种:调用schedule 模块定时执行任务。众所周知,python 因其丰富的库函数而闻名,这里我们将简单介绍一个轻量级的定时任务执行包。它能够有效满足我们大多数时候的需求。

import schedule
import time

def job(name):
    print("her name is : ", name)

name = "longsongpong"
schedule.every(10).minutes.do(job, name) # 每隔十分钟执行一次任务
schedule.every().hour.do(job, name) # 每隔一小时执行一次任务 
schedule.every().day.at("10:30").do(job, name)# 每天的10:30执行一次任务 
schedule.every(5).to(10).days.do(job, name)# 每隔5到10天执行一次任务 
schedule.every().monday.do(job, name)# 每周一的这个时候执行一次任务 
schedule.every().wednesday.at("13:15").do(job, name)# 每周三的13:15执行一次任务 

while True:
    schedule.run_pending() # 运行所有可以运行的任务
    time.sleep(1)

schedule的所有任务都是串行执行的,如果需要多线程并发,可以如下方式启用多线程:

 def run_threaded(job_func):
      job_thread = threading.Thread(target=job_func)
      job_thread.start()
 
schedule.every(10).seconds.do(run_threaded,job)
schedule.every(10).seconds.do(run_threaded,job2)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/918606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号