Python定时任务!这个项目我说能挣5K,你信吗?

本文介绍了如何使用Python的threading.Timer和APScheduler实现定时任务,但最终推荐了使用Linux的crontab服务。详细讲解了crontab的语法和配置,并提供了通过shell脚本自动添加crontab任务的方法,强调了使用shell脚本启动Python程序的原因,以及处理路径问题的重要性。同时,分享了Python程序员需要掌握的技能,强调不应局限于单一语言。
摘要由CSDN通过智能技术生成

一个简单的需求,即定时启动python脚本,这种需求很常见,比如定时启动一段程序对服务器状态进行收集,写到文件中,方便运维后期审计,查看服务器占用高峰时间段,从而判断出公司产品在该时间段较多人使用,或定时清除其他程序的日志,释放线上服务器的空间,这块常见的架构是有个转存程序,将日志通过nginx文件服务挂起,然后该程序请求这种文件,将其存储在数据服务器中,而线上服务器的日志就不需要了(游戏日志通常比较大,所以转存程序也需要设计一下)。

本章主要来实现一下定时启动python的需求,当然,定时启动其他任何程序也都一样。

Python threading模块

一开始,为了省事,直接使用python的threading模块,threading模块下有个Timer模块,它可以实现定时启动python程序的需求,用法如下:
在这里插入图片描述

值得一提的是,timer需要使用global timer,据说尝试运行时,会释放无需使用的占用资源。

实现方法很简单,即创建Timer()实例,传入两个参数,分别是时间间隔(单位为秒)与定时任务本身,构成一个死递归(因为没有逃出条件),然后就是调用Timer实例的start()方法。

不推荐,虽然网上博客说使用global timer会释放无用资源,但实际没有考证,这种写法在服务器上跑起来的程序通常一天就断,我周日启动该程序,周一来公司看,对应的python程序挂了。

APScheduler

APScheduler是Python用于执行定时操作的第三方框架,作为一个框架,它就有它对应的各种概念,没必要搞那么复杂,学习成本有点高,放弃

Linux crontab

最总还是转到了Linux的crontab服务,该服务主要就是用于实现定时任务的,其语法如下:

# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,ma
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值