Python實(shí)現(xiàn)定時(shí)任務(wù),定時(shí)采集數(shù)據(jù),定時(shí)執(zhí)行腳本程序都可以

寫后端的同學(xué)們可能都知道,工作中可能需要周期性執(zhí)行一些任務(wù),俗稱定時(shí)任務(wù)。Linux環(huán)境下,可以借助于系統(tǒng)自帶的crontab完成定時(shí)任務(wù)。但是很多時(shí)候,開發(fā)的同學(xué)們可能并沒有權(quán)限去操作crontab,所以就催生了一些不太好的解決方案,比如基于Python/Java里面的Timer去弄一個(gè)周期性執(zhí)行的工具。

很多人學(xué)習(xí)python,不知道從何學(xué)起。

很多人學(xué)習(xí)python,掌握了基本語法過后,不知道在哪里尋找案例上手。
很多已經(jīng)做案例的人,卻不知道如何去學(xué)習(xí)更加高深的知識。
那么針對這三類人,我給大家提供一個(gè)好的學(xué)習(xí)平臺,免費(fèi)領(lǐng)取視頻教程,電子書籍,以及課程的源代碼!

QQ群:101677771

大佬們,醒醒,主角出場了。今天給大家分享一個(gè)Python輕量級定時(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-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秒執(zhí)行一次job1

schedule.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-8

from datetime import datetime
import time
import 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)
就是這么簡單,你學(xué)會了嗎?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容