Python APScheduler執(zhí)行使用方法詳解
APScheduler就是定時(shí)進(jìn)行周期性的運(yùn)行某些程序,在語言程序編寫中,一直會(huì)遇到些定時(shí)服務(wù),有時(shí)是根據(jù)時(shí)間定時(shí),有時(shí)在固定的位置上進(jìn)行定制,還有一些是因?yàn)閮?chǔ)蓄出現(xiàn)的定時(shí),不管是處于哪一種定時(shí)類型,基本上都可以使用APScheduler模塊進(jìn)行協(xié)助工作,本文給大家介紹定時(shí)模塊的使用方法。
APScheduler與第三方模塊安裝方式一樣,使用pip,安裝過程如下:
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ā)器,用于決定接下來哪一個(gè)作業(yè)會(huì)運(yùn)行。除了他們自己初始配置意外,觸發(fā)器完全是無狀態(tài)的。簡(jiǎn)單說就是應(yīng)該說明一個(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)行,他們通常通過在作業(yè)中提交制定的可調(diào)用對(duì)象到一個(gè)線程或者進(jìn)城池來進(jìn)行。當(dāng)作業(yè)完成時(shí),執(zhí)行器將會(huì)通知調(diào)度器。 調(diào)度器(scheduler)任務(wù)控制器:通過配置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. JSP 中response.setContentType()的作用及參數(shù)2. idea開啟代碼提示功能的方法步驟3. ASP.NET MVC使用jQuery的Load方法加載靜態(tài)頁面及注意事項(xiàng)4. Docker究竟是什么 為什么這么流行 它的優(yōu)點(diǎn)和缺陷有哪些?5. idea關(guān)聯(lián)maven的使用詳解6. Visual Studio 2022常見的報(bào)錯(cuò)以及處理方案圖文詳解7. django-csrf使用和禁用方式8. IntelliJ IDEA 部署 Web 項(xiàng)目,看這一篇夠了!9. 原生js實(shí)現(xiàn)瀑布流效果10. 關(guān)于PHP操作文件的一些FAQ總結(jié)
