在使用apscheduler 的BackgroundScheduler調(diào)度時(shí)結(jié)果出不來(lái)?
大家好,我是皮皮。
一、前言
前幾天在Python白銀交流群【魚(yú)開(kāi)溜??】問(wèn)了一個(gè)Python定時(shí)任務(wù)的問(wèn)題,提問(wèn)截圖如下:
下面是他的代碼:
二、實(shí)現(xiàn)過(guò)程
這里需要先安裝apscheduler庫(kù),不然會(huì)報(bào)錯(cuò)。
這里【dcpeng】給了一個(gè)解決辦法,把那個(gè)interval參數(shù)去除就好了。
不過(guò)沒(méi)那個(gè)參數(shù),實(shí)現(xiàn)不了定時(shí)功能。
不過(guò)也不要慌,這里有相關(guān)參數(shù)說(shuō)明。
所以需要定時(shí)任務(wù)的話,定時(shí)任務(wù)器的參數(shù)可以參考下面進(jìn)行設(shè)置。
未指定日期,則會(huì)立即執(zhí)行
如此一來(lái),問(wèn)題就得到解決了。
粉絲想要實(shí)現(xiàn)的功能是,類似于linux的crontab,想要在特定時(shí)間范圍或者時(shí)間間隔下跑某些函數(shù),查到功能比較強(qiáng)大的apscheduler,有兩種方式實(shí)現(xiàn)我需要的功能:①是有進(jìn)程阻塞的BlockingSchedul ②是無(wú)進(jìn)程阻塞的BackgroundScheduler。差別在于時(shí)間差,粉絲想的是如果有多條進(jìn)程需要同時(shí)跑,要么異步,要么用無(wú)進(jìn)程阻塞的,故選了方式②,提供的代碼如下。
可以看到這里,針對(duì)參數(shù)做了修改,之前寫(xiě)法是trigger=interval,這里把時(shí)間間隔放到前面,在這個(gè)時(shí)間范圍內(nèi),1秒執(zhí)行一次。并在主程序加上死循環(huán),一直處于掛起狀態(tài)循環(huán),類似于只用Scheduler的,可以得到如下結(jié)果:
三、總結(jié)
大家好,我是皮皮。這篇文章主要盤(pán)點(diǎn)了一個(gè)Python定時(shí)任務(wù)的問(wèn)題,文中針對(duì)該問(wèn)題,給出了具體的解析和代碼實(shí)現(xiàn),幫助粉絲順利解決了問(wèn)題。