python定时任务启动与停止_Python启动定时任务
1. time模塊
time.sleep(n)
例如下面的例子
def work(n): - 每隔n 秒 輸出 1到10之間的一個(gè)數(shù)
for i in range(10):
print i
time.sleep(n)
上面的實(shí)例是阻塞的,在sleep的時(shí)間內(nèi)程序一直堵塞
詳情請(qǐng)參考官方文檔-----time.sleep
2. sched 模塊
1.導(dǎo)入sched模塊
import sched
----------------------------------------------------------------------------------
2.創(chuàng)建scheduler對(duì)象
s = sched.scheduler(time.time, time.sleep)
- time.time:返回時(shí)間戳的函數(shù)
- time.sleep:可以在定時(shí)未到達(dá)之前阻塞
------------------------------------------------------------------------------------
3.定義要執(zhí)行的任務(wù)
def worker(n):
pass
-------------------------------------------------------------------------------------
4.將任務(wù)添加到scheduler的盒子中
s.enter(delay,priority,action,arguments)
- delay:int /float型的表示多少秒后執(zhí)行這個(gè)action任務(wù)
- priority:優(yōu)先級(jí)表示當(dāng)多個(gè)任務(wù)同時(shí)在一個(gè)時(shí)刻將執(zhí)行優(yōu)先執(zhí)行那個(gè)任務(wù)
0優(yōu)先級(jí)最高,數(shù)字越小優(yōu)先級(jí)越高
- action: 執(zhí)行的任務(wù)在上面的例子中也就是函數(shù)名worker
- arguments:參數(shù)列表以元組的形式如:(n,)
如果沒(méi)有參數(shù)傳入直接傳空括號(hào)()
--------------------------------------------------------------------------------------
5.運(yùn)行任務(wù)
s.run()
在多線(xiàn)程環(huán)境中由于線(xiàn)程全局鎖安全,一個(gè)任務(wù)沒(méi)結(jié)束,就要等待也是阻塞的詳細(xì)請(qǐng)查看官方庫(kù)----sched
3.threading.Timer()
為了解決上面的阻塞問(wèn)題,再多線(xiàn)程的環(huán)境中能夠并發(fā)執(zhí)行
1.導(dǎo)入模塊
from threading import Timer
----------------------------------------------------------------------------------------
2.定義要執(zhí)行的任務(wù)
def work(arg):
pass
----------------------------------------------------------------------------------------
3.啟動(dòng)執(zhí)行
Timer(delay, work, (arg)).start()
- 不需要區(qū)分優(yōu)先級(jí)可以同時(shí)執(zhí)行任務(wù)delay相同時(shí)就同時(shí)執(zhí)行任務(wù)
- delay:int /float型的表示多少秒后執(zhí)行這個(gè)work任務(wù)
- work: 執(zhí)行任務(wù)的方法名字
- arg:參數(shù)列表元祖(arg,)如果沒(méi)有就是()
4.更加高級(jí)的任務(wù)調(diào)度框架 apscheduler
官方文檔 查看
1.導(dǎo)入模塊
from apscheduler.schedulers.blocking import BlockingScheduler
2.初始化一個(gè)任務(wù)實(shí)例
sched = BlockingScheduler()
3.添加作業(yè)任務(wù)
sched.add_job(my_job, 'interval', seconds=5)
- my_job:作業(yè)任務(wù)
-‘ interval ’ ‘cron ’等等
4.啟動(dòng)任務(wù)
sched.start()
總結(jié)
以上是生活随笔為你收集整理的python定时任务启动与停止_Python启动定时任务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 看printk引发的一点思考
- 下一篇: python 定时任务 全局变量_Pyt