电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

利用Python實現(xiàn)定時程序的方法

瀏覽:2日期:2022-06-15 13:17:33
目錄定時器概念實現(xiàn)一個簡單的定時程序方案一方案二定時器概念

什么是定時器呢?它是指從指定的時刻開始,經(jīng)過一個指定時間,然后觸發(fā)一個事件,用戶可以自定義定時器的周期與頻率。

實現(xiàn)一個簡單的定時程序方案一

在 Python 中,如何定義一個定時器函數(shù)呢?我們先看第一種方法。假設(shè)我們需要執(zhí)行一個函數(shù)userCountFunc,這個函數(shù)需要每隔一個小時被執(zhí)行一次。那么,我們可以這樣寫:

def main(): startCronTask(userCountFunc, minutes=60)if __name__ == ’__main__’: main()

如上面的代碼,我們在定義了一個 main 函數(shù)后,便定義了一個定時函數(shù) startCronTask。第一個參數(shù)為函數(shù)名,第二個參數(shù)為時間,第二個參數(shù)表示多長時間后調(diào)用后面第一個參數(shù)的函數(shù)。第一個參數(shù)注意是函數(shù)對象,進行參數(shù)傳遞,用函數(shù)名(如 userCountFunc)表示該對象,不是函數(shù)執(zhí)行語句 userCountFunc(),不然會報錯。那么,在實現(xiàn)這個函數(shù)時,需要引入定時功能,Python 中有一個定時任務(wù)模塊 BlockingScheduler:

from apscheduler.schedulers.blocking import BlockingSchedulerdef startCronTask(task, **config): # BlockingScheduler scheduler = BlockingScheduler() scheduler.add_job(task, ’interval’, **config) scheduler.start()

定義完一個調(diào)度模塊之后,實際的定時調(diào)度功能就完成了。接下來,需要具體實現(xiàn)定時執(zhí)行的邏輯函數(shù) userCountFunc:

def userCountFunc(): logger.info(’count user’) ...

這樣,對于方案一,實現(xiàn)的簡單的定時功能就完成了。

方案二

方案一中介紹的是 Python 自帶的 BlockingScheduler 模塊,Python 中除了可以通過 BlockingScheduler,還通過線程實現(xiàn)定時器 timer,來簡單的看下代碼:

import threadingdef timerFunc(): print(’Hello World~’)timer = threading.Timer(1, timerFunc)timer.start()

在上面的代碼中,定時器函數(shù) threading.Timer 主要有2個參數(shù),參數(shù)意義與方案一類似,接下來執(zhí)行這段程序:

Hello World~ Process finished with exit code 0

我們發(fā)現(xiàn)只執(zhí)行一遍,程序就結(jié)束了,但顯然不是我們想要的結(jié)果。其實,我們看下 Time 類,有這樣的一句解釋性注釋:Call a function after a specified number of seconds,我們發(fā)現(xiàn)上面在執(zhí)行后并未循環(huán)執(zhí)行,所以需要修改下:

import threadingdef timerFunc(): print(’Hello World~’) global timer timer = threading.Timer(10.5, timerFunc) timer.start()timer = threading.Timer(3, timerFunc)timer.start()

此時,我們可以看到輸出結(jié)果:

Hello World~

Hello World~

Hello World~...

這里需要注意的是:必須在定時器執(zhí)行函數(shù)內(nèi)部重復(fù)構(gòu)造定時器,因為定時器構(gòu)造后只執(zhí)行1次,必須循環(huán)調(diào)用。

另外,在上面的代碼中,我們其實還可以看到:threading.Timer(5.5, timerFunc),定時器間隔單位是秒,可以是浮點數(shù),如5.5,0.9等,在執(zhí)行函數(shù) timerFunc 內(nèi)部和外部中給的值可以不同。如上例中第一次執(zhí)行 timerFunc 是3秒后,后面的都是10.5秒后執(zhí)行。

接下來,我們再看看如何再一定時間結(jié)束定時功能。我們可以使用cancel停止定時器的工作,如下例:

import threadingdef timerFunc(): print(’Hello World~’) global timer timer = threading.Timer(10.5, timerFunc) timer.start()timer = threading.Timer(3, timerFunc)timer.start()time.sleep(60)timer.cancel()

上面的代碼表示:在定時器按照一定時間執(zhí)行后,執(zhí)行過程耗時60秒后停止定時操作功能,退出。顯示結(jié)果為:

Hello World~

Hello World~

Hello World~

Hello World~

Hello World~...

Process finished with exit code 0

到此這篇關(guān)于利用Python實現(xiàn)定時程序的方法的文章就介紹到這了,更多相關(guān)Python 定時程序內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 电力测功机,电涡流测功机,磁粉制动器,南通远辰曳引机测试台 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 餐饮小吃技术培训-火锅串串香培训「何小胖培训」_成都点石成金[官网] | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | RO反渗透设备_厂家_价格_河南郑州江宇环保科技有限公司 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 振动筛,震动筛,圆形振动筛,振动筛价格,振动筛厂家-新乡巨宝机电 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 浙江栓钉_焊钉_剪力钉厂家批发_杭州八建五金制造有限公司 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 合肥地磅_合肥数控切割机_安徽地磅厂家_合肥世佳电工设备有限公司 | 泡沫消防车_水罐消防车_湖北江南专用特种汽车有限公司 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 仿真植物|仿真树|仿真花|假树|植物墙 - 广州天昆仿真植物有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 搅拌磨|搅拌球磨机|循环磨|循环球磨机-无锡市少宏粉体科技有限公司 | 云南成人高考网| 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 |