asp python 定时任务_Python定时任务轻量解决方案——Schedule
寫后端的同學(xué)們可能都知道,工作中可能需要周期性執(zhí)行一些任務(wù),俗稱定時(shí)任務(wù)。Linux環(huán)境下,可以借助于系統(tǒng)自帶的crontab完成定時(shí)任務(wù)。但是很多時(shí)候,開(kāi)發(fā)的同學(xué)們可能并沒(méi)有權(quán)限去操作crontab,所以就催生了一些不太好的解決方案,比如基于Python/Java里面的Timer去弄一個(gè)周期性執(zhí)行的工具。
大佬們,醒醒,主角出場(chǎng)了。今天給大家分享一個(gè)Python輕量級(jí)定時(shí)任務(wù)解決方案,schedule,可以滿足常用的周期性任務(wù)需求。
安裝
pip install schedule使用
schedule提供了多種方法去描述執(zhí)行周期,比如:
#1,按照某個(gè)時(shí)間間隔
every(10).seconds.do(task),表示每隔10秒執(zhí)行task任務(wù)。當(dāng)然可以把間隔換成其他單位,比如minutes,hours,days
#2,按照一個(gè)固定的時(shí)間點(diǎn)
every().day.at('9:30').do(task),表示每天9:30執(zhí)行任務(wù)
#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秒執(zhí)行一次job1schedule.every(5).seconds.do(job1)# 每天9:30執(zhí)行任務(wù)schedule.every().day.at('09:30').do(job1)if __name__ == '__main__': while True: schedule.run_pending() time.sleep(1)效果
如何讓任務(wù)只執(zhí)行一次?
只需要在任務(wù)最后加上這句話就行,return schedule.CancelJob
#encoding=utf-8from datetime import datetimeimport timeimport scheduledef job_run_once(*args): print('Job run only once') # return schedule.CancelJob# 只執(zhí)行一次任務(wù)schedule.every(3).seconds.do(job_run_once)if __name__ == '__main__': while True: schedule.run_pending() time.sleep(1)就是這么簡(jiǎn)單,你學(xué)會(huì)了嗎?
總結(jié)
以上是生活随笔為你收集整理的asp python 定时任务_Python定时任务轻量解决方案——Schedule的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信全新拜年红包上线:可添加语音祝福,还
- 下一篇: 《新·福音战士剧场版:终》国内海报抄袭!