Python定时计划任务探究,如何实现到点运行py任务脚本

不少大佬哥应该有着这样一个应用场景,即到点跪舔女神,给女大佬问好,带早餐,备胎计划??而在实际网络中,也有着不少定时定点计划任务需要运行,这在运维当中非常常见,也非常重要!身为技术渣想要实现到点运行py任务脚本,比如说每天某个时间点准时运行爬取91新片以及精彩评论,兴趣让渣渣有研究的动力,这就有了下面这篇水文!!

方法一:宝塔面板计划任务

如果你的服务器恰好装有宝塔面板,那么,你不妨试试宝塔的计划任务!

f329e13fa9d1cd0bcb0af7558dc4b679.png

选择shell脚本,设置好相关参数

输入命令 python /www/wwwroot/py91.py

注意:脚本内容 python /www/wwwroot/域名/文件绝对路径

其实就是跟windows调用cmd命令一样哈!

到点即可运行py文件!

82eabfa26918b7900f6b999a988a701e.png

这简直就是LSP们的最爱设置了,有没有??!!

方法二:python代码实现

  • 方式一:while循环+sleep

超级简单粗暴的方式,即 while True + time.sleep(s),s即为间隔方式!

参考demo:

from datetime import datetime
import time
# 每n秒执行一次
def timer(n):
    while True:
        print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
        time.sleep(n)
# 5s
timer(5)

优点:当然是简单方便,连本渣渣都会!

缺点:大佬说是耗服务器性能,想想也是,其实是一直在阻塞运行,至于多耗性能就不得而知了!

  • 方式二:threading模块中的Timer

这个本渣渣没有用过,大佬哥们可以尝试看看!

参考demo:

from datetime import datetime
from threading import Timer
# 打印时间函数
def printTime(inc):
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    t = Timer(inc, printTime, (inc,))
    t.start()
# 5s
printTime(5)
  • 方式三:使用sched模块

模块是 Python 内置的模块,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度。

本渣渣现在瞎几把用的方法,其实源码没怎么研究,改着用着先了。。

参考demo:

import sched
import time
from datetime import datetime
# 初始化sched模块的 scheduler 类
# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
schedule = sched.scheduler(time.time, time.sleep)
# 被周期性调度触发的函数
def printTime(inc):
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    schedule.enter(inc, 0, printTime, (inc,))
# 默认参数60s
def main(inc=60):
    # enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,
    # 给该触发函数的参数(tuple形式)
    schedule.enter(0, 0, printTime, (inc,))
    schedule.run()
# 10s 输出一次
main(10)

运行效果,改为5s运行一次!

9d55068e19378b06abd2b5d5ebf58bbf.gif

关于其挂机服务器占用性能,仅供参考,毕竟只是一个小小的爬取脚本!

ecc6412d6a095d9795dffab351478452.png

附:高端,框架方法,本渣渣头秃了,大佬哥们自行尝试研究吧!

定时任务框架APScheduler

参考来源:

Python 实现定时任务

https://www.cnblogs.com/yblackd/p/13359769.html

·················END·················

你好,我是二大爷,

革命老区外出进城务工人员,

互联网非早期非专业站长,

喜好python,写作,阅读,英语

不入流程序,自媒体,seo . . .

公众号不挣钱,交个网友。

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注二大爷呗~给你分享python,写作,阅读的内容噢~

扫一扫下方二维码即可关注我噢~

df7176398fc0e5460859bd68aa59f190.png

87b34fbe4debcf038c6f6d2548e00c2b.png

关注我的都变秃了

说错了,都变强了!

不信你试试

de6ddcf6520556be363765d221499dc6.png

扫码关注最新动态

公众号ID:eryeji

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值