1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > asp python 定时任务_Python定时任务轻量解决方案——Schedule

asp python 定时任务_Python定时任务轻量解决方案——Schedule

时间:2019-07-02 17:37:43

相关推荐

asp python 定时任务_Python定时任务轻量解决方案——Schedule

写后端的同学们可能都知道,工作中可能需要周期性执行一些任务,俗称定时任务。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-8from datetime import datetimeimport timeimport scheduledef job1(*args): with open('tasks', 'a') as f: f.write('[{}]{}'.format(datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'), 'msg'))# 每隔5秒执行一次job1schedule.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-8from datetime import datetimeimport timeimport 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)

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。