Python APScheduler執(zhí)行使用方法詳解
APScheduler就是定時(shí)進(jìn)行周期性的運(yùn)行某些程序,在語(yǔ)言程序編寫(xiě)中,一直會(huì)遇到些定時(shí)服務(wù),有時(shí)是根據(jù)時(shí)間定時(shí),有時(shí)在固定的位置上進(jìn)行定制,還有一些是因?yàn)閮?chǔ)蓄出現(xiàn)的定時(shí),不管是處于哪一種定時(shí)類型,基本上都可以使用APScheduler模塊進(jìn)行協(xié)助工作,本文給大家介紹定時(shí)模塊的使用方法。
APScheduler與第三方模塊安裝方式一樣,使用pip,安裝過(guò)程如下:
1、APScheduler支持觸發(fā)器:
DateTriggerIntervalTriggerCronTrigger
2、APScheduler支持的Executor
AsyncIOExecutorGeventExecutorThreadPoolExecutor
APScheduler使用示例:
import asyncioimport datetimescheduler.add_job(async_func, trigger, args=['jobstore second, executor = second'], id='cron_func_test_2', jobstore='second', executor='second')
大家?guī)雸?zhí)行代碼看下輸出結(jié)果,小編這篇內(nèi)容只是舉例常規(guī)內(nèi)容,還有更多的比如在執(zhí)行器任務(wù)完成是,使用調(diào)度器連接,進(jìn)行添加,修改等等
知識(shí)點(diǎn)擴(kuò)展:
在APScheduler中有四個(gè)組件 觸發(fā)器(trigger)包含調(diào)度邏輯,每一個(gè)作業(yè)有它自己的觸發(fā)器,用于決定接下來(lái)哪一個(gè)作業(yè)會(huì)運(yùn)行。除了他們自己初始配置意外,觸發(fā)器完全是無(wú)狀態(tài)的。簡(jiǎn)單說(shuō)就是應(yīng)該說(shuō)明一個(gè)任務(wù)應(yīng)該在什么時(shí)候執(zhí)行。 作業(yè)存儲(chǔ)(job store)存儲(chǔ)被調(diào)度的作業(yè),默認(rèn)的作業(yè)存儲(chǔ)是簡(jiǎn)單地把作業(yè)保存在內(nèi)存中,其他的作業(yè)存儲(chǔ)是將作業(yè)保存在數(shù)據(jù)庫(kù)中。一個(gè)作業(yè)的數(shù)據(jù)將在保存在持久化作業(yè)存儲(chǔ)時(shí)被序列化,并在加載時(shí)被反序列化。調(diào)度器不能分享同一個(gè)作業(yè)存儲(chǔ)。 執(zhí)行器(executor)處理作業(yè)的運(yùn)行,他們通常通過(guò)在作業(yè)中提交制定的可調(diào)用對(duì)象到一個(gè)線程或者進(jìn)城池來(lái)進(jìn)行。當(dāng)作業(yè)完成時(shí),執(zhí)行器將會(huì)通知調(diào)度器。 調(diào)度器(scheduler)任務(wù)控制器:通過(guò)配置executor、jobstore、trigger,使用線程池(ThreadPoolExecutor默認(rèn)值20)或進(jìn)程池(ProcessPoolExecutor 默認(rèn)值5)并且默認(rèn)最多3個(gè)(max_instances)任務(wù)實(shí)例同時(shí)運(yùn)行,實(shí)現(xiàn)對(duì)job的增刪改查等調(diào)度控制你需要選擇合適的調(diào)度器,這取決于你的應(yīng)用環(huán)境和你使用APScheduler的目的。通常最常用的兩個(gè):
BlockingScheduler:當(dāng)調(diào)度器是你應(yīng)用中唯一要運(yùn)行的東西時(shí)使用。
BackgroundScheduler:當(dāng)你不運(yùn)行任何其他框架時(shí)使用,并希望調(diào)度器在你應(yīng)用的后臺(tái)執(zhí)行。
相關(guān)文章:
1. js實(shí)現(xiàn)跳一跳小游戲2. IDEA中用maven連接數(shù)據(jù)庫(kù)的教程3. JVM之class文件結(jié)構(gòu)4. js實(shí)現(xiàn)貪吃蛇小游戲(加墻)5. Python中Anaconda3 安裝gdal庫(kù)的方法6. asp.net core 認(rèn)證和授權(quán)實(shí)例詳解7. Python進(jìn)行統(tǒng)計(jì)建模8. python對(duì)批量WAV音頻進(jìn)行等長(zhǎng)分割的方法實(shí)現(xiàn)9. Ajax報(bào)錯(cuò)400的參考解決辦法10. CSS linear-gradient屬性案例詳解
