首页 > 编程语言 > 详细

Python定时任务轻量解决方案---Schedule

时间:2020-08-17 22:31:29      阅读:87      评论:0      收藏:0      [点我收藏+]

写后端的同学们可能都知道,工作中可能需要周期性执行一些任务,俗称定时任务。Linux环境下,可以借助于系统自带的crontab完成定时任务。但是很多时候,开发的同学们可能并没有权限去操作crontab,所以就催生了一些不太好的解决方案,比如基于Python/Java里面的Timer去弄一个周期性执行的工具。

大佬们,醒醒,主角出场了。今天给大家分享一个Python轻量级定时任务解决方案,schedule,可以满足常用的周期性任务需求。

安装

pip install schedule

使用

schedule提供了多种方法去描述执行周期,比如:

#1,按照某个时间间隔

every(10).seconds.do(task),表示每隔10秒执行task任务。当然可以把间隔换成其他单位,比如minutes,hours,days

#2,按照一个固定的时间点

every().day.at(‘9:30‘).do(task),表示每天9:30执行任务

#encoding=utf-8
from datetime import datetime
import time
import schedule


def job1(*args):
    with open(tasks, a) as f:
        f.write([{}]{}\n.format(datetime.now().strftime(%Y-%m-%d %H:%M:%S.%f), msg))


# 每隔5秒执行一次job1
schedule.every(5).seconds.do(job1)
# 每天9:30执行任务
schedule.every().day.at(09:30).do(job1)


if __name__ == __main__:
    while True:
        schedule.run_pending()
        time.sleep(1)

效果

技术分享图片

 

 

如何让任务只执行一次?

只需要在任务最后加上这句话就行,return schedule.CancelJob

#encoding=utf-8
from datetime import datetime
import time
import scheduledef job_run_once(*args):
    print(Job run only once)
    #
    return schedule.CancelJob


# 只执行一次任务
schedule.every(3).seconds.do(job_run_once)


if __name__ == __main__:
    while True:
        schedule.run_pending()
        time.sleep(1)

 

就是这么简单,你学会了吗?

Python定时任务轻量解决方案---Schedule

原文:https://www.cnblogs.com/henrytee/p/13519853.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!